<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.encodedFullHashes.html">encodedFullHashes</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#get">get(encodedRequest, clientVersion=None, clientId=None, x__xgafv=None)</a></code></p>
<p class="firstline"></p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="get">get(encodedRequest, clientVersion=None, clientId=None, x__xgafv=None)</code>
  <pre>

Args:
  encodedRequest: string, A serialized FindFullHashesRequest proto. (required)
  clientVersion: string, The version of the client implementation.
  clientId: string, A client ID that (hopefully) uniquely identifies the client implementation
of the Safe Browsing API.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &quot;negativeCacheDuration&quot;: &quot;A String&quot;, # For requested entities that did not match the threat list, how long to
        # cache the response.
    &quot;minimumWaitDuration&quot;: &quot;A String&quot;, # 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.
    &quot;matches&quot;: [ # The full hashes that matched the requested prefixes.
      { # A match when checking a threat entry in the Safe Browsing threat lists.
        &quot;threatEntryMetadata&quot;: { # 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.
          &quot;entries&quot;: [ # The metadata entries.
            { # A single metadata entry.
              &quot;key&quot;: &quot;A String&quot;, # The metadata entry key. For JSON requests, the key is base64-encoded.
              &quot;value&quot;: &quot;A String&quot;, # The metadata entry value. For JSON requests, the value is base64-encoded.
            },
          ],
        },
        &quot;platformType&quot;: &quot;A String&quot;, # The platform type matching this threat.
        &quot;threatType&quot;: &quot;A String&quot;, # The threat type matching this threat.
        &quot;cacheDuration&quot;: &quot;A String&quot;, # The cache lifetime for the returned match. Clients must not cache this
            # response for more than this duration to avoid false positives.
        &quot;threatEntryType&quot;: &quot;A String&quot;, # The threat entry type matching this threat.
        &quot;threat&quot;: { # 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.
          &quot;url&quot;: &quot;A String&quot;, # A URL.
          &quot;hash&quot;: &quot;A String&quot;, # 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.
          &quot;digest&quot;: &quot;A String&quot;, # The digest of an executable in SHA256 format. The API supports both
              # binary and hex digests. For JSON requests, digests are base64-encoded.
        },
      },
    ],
  }</pre>
</div>

</body></html>