<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="safebrowsing_v4.html">Google Safe Browsing API</a> . <a href="safebrowsing_v4.fullHashes.html">fullHashes</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#find">find(body, x__xgafv=None)</a></code></p>
<p class="firstline">Finds the full hashes that match the requested hash prefixes.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="find">find(body, x__xgafv=None)</code>
  <pre>Finds the full hashes that match the requested hash prefixes.

Args:
  body: object, The request body. (required)
    The object takes the form of:

{ # Request to return full hashes matched by the provided hash prefixes.
    "client": { # The client metadata associated with Safe Browsing API requests. # The client metadata.
      "clientVersion": "A String", # The version of the client implementation.
      "clientId": "A String", # A client ID that (hopefully) uniquely identifies the client implementation
          # of the Safe Browsing API.
    },
    "apiClient": { # The client metadata associated with Safe Browsing API requests. # Client metadata associated with callers of higher-level APIs built on top
        # of the client's implementation.
      "clientVersion": "A String", # The version of the client implementation.
      "clientId": "A String", # A client ID that (hopefully) uniquely identifies the client implementation
          # of the Safe Browsing API.
    },
    "threatInfo": { # The information regarding one or more threats that a client submits when # The lists and hashes to be checked.
        # checking for matches in threat lists.
      "threatTypes": [ # The threat types to be checked.
        "A String",
      ],
      "threatEntries": [ # The threat entries to be checked.
        { # An individual threat; for example, a malicious URL or its hash
            # representation. Only one of these fields should be set.
          "url": "A String", # A URL.
          "hash": "A String", # A hash prefix, consisting of the most significant 4-32 bytes of a SHA256
              # hash. This field is in binary format. For JSON requests, hashes are
              # base64-encoded.
          "digest": "A String", # The digest of an executable in SHA256 format. The API supports both
              # binary and hex digests. For JSON requests, digests are base64-encoded.
        },
      ],
      "platformTypes": [ # The platform types to be checked.
        "A String",
      ],
      "threatEntryTypes": [ # The entry types to be checked.
        "A String",
      ],
    },
    "clientStates": [ # The current client states for each of the client's local threat lists.
      "A String",
    ],
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    "negativeCacheDuration": "A String", # For requested entities that did not match the threat list, how long to
        # cache the response.
    "matches": [ # The full hashes that matched the requested prefixes.
      { # A match when checking a threat entry in the Safe Browsing threat lists.
        "threatType": "A String", # The threat type matching this threat.
        "threatEntryMetadata": { # The metadata associated with a specific threat entry. The client is expected # Optional metadata associated with this threat.
            # to know the metadata key/value pairs associated with each threat type.
          "entries": [ # The metadata entries.
            { # A single metadata entry.
              "value": "A String", # The metadata entry value. For JSON requests, the value is base64-encoded.
              "key": "A String", # The metadata entry key. For JSON requests, the key is base64-encoded.
            },
          ],
        },
        "threatEntryType": "A String", # The threat entry type matching this threat.
        "cacheDuration": "A String", # The cache lifetime for the returned match. Clients must not cache this
            # response for more than this duration to avoid false positives.
        "threat": { # An individual threat; for example, a malicious URL or its hash # The threat matching this threat.
            # representation. Only one of these fields should be set.
          "url": "A String", # A URL.
          "hash": "A String", # A hash prefix, consisting of the most significant 4-32 bytes of a SHA256
              # hash. This field is in binary format. For JSON requests, hashes are
              # base64-encoded.
          "digest": "A String", # The digest of an executable in SHA256 format. The API supports both
              # binary and hex digests. For JSON requests, digests are base64-encoded.
        },
        "platformType": "A String", # The platform type matching this threat.
      },
    ],
    "minimumWaitDuration": "A String", # The minimum duration the client must wait before issuing any find hashes
        # request. If this field is not set, clients can issue a request as soon as
        # they want.
  }</pre>
</div>

</body></html>