<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.threatHits.html">threatHits</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#create">create(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Reports a Safe Browsing threat list hit to Google. Only projects with TRUSTED_REPORTER visibility can use this method.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="create">create(body=None, x__xgafv=None)</code>
  <pre>Reports a Safe Browsing threat list hit to Google. Only projects with TRUSTED_REPORTER visibility can use this method.

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

{
  &quot;clientInfo&quot;: { # The client metadata associated with Safe Browsing API requests. # Client-reported identification.
    &quot;clientId&quot;: &quot;A String&quot;, # A client ID that (hopefully) uniquely identifies the client implementation of the Safe Browsing API.
    &quot;clientVersion&quot;: &quot;A String&quot;, # The version of the client implementation.
  },
  &quot;entry&quot;: { # An individual threat; for example, a malicious URL or its hash representation. Only one of these fields should be set. # The threat entry responsible for the hit. Full hash should be reported for hash-based hits.
    &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.
    &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;url&quot;: &quot;A String&quot;, # A URL.
  },
  &quot;platformType&quot;: &quot;A String&quot;, # The platform type reported.
  &quot;resources&quot;: [ # The resources related to the threat hit.
    { # A single resource related to a threat hit.
      &quot;referrer&quot;: &quot;A String&quot;, # Referrer of the resource. Only set if the referrer is available.
      &quot;remoteIp&quot;: &quot;A String&quot;, # The remote IP of the resource in ASCII format. Either IPv4 or IPv6.
      &quot;type&quot;: &quot;A String&quot;, # The type of source reported.
      &quot;url&quot;: &quot;A String&quot;, # The URL of the resource.
    },
  ],
  &quot;threatType&quot;: &quot;A String&quot;, # The threat type reported.
  &quot;userInfo&quot;: { # Details about the user that encountered the threat. # Details about the user that encountered the threat.
    &quot;regionCode&quot;: &quot;A String&quot;, # The UN M.49 region code associated with the user&#x27;s location.
    &quot;userId&quot;: &quot;A String&quot;, # Unique user identifier defined by the client.
  },
}

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

Returns:
  An object of the form:

    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
}</pre>
</div>

</body></html>