<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">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",
      ],
      "threatEntryTypes": [ # The entry types to be checked.
        "A String",
      ],
      "platformTypes": [ # The platform 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.
        },
      ],
    },
    "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.
              "key": "A String", # The metadata entry key. For JSON requests, the key is base64-encoded.
              "value": "A String", # The metadata entry value. For JSON requests, the value 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>