<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.encodedUpdates.html">encodedUpdates</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 FetchThreatListUpdatesRequest proto. (required)
  clientVersion: string, The version of the client implementation.
  clientId: string, A client ID that 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:

    {
    "listUpdateResponses": [ # The list updates requested by the clients.
      { # An update to an individual list.
        "responseType": "A String", # The type of response. This may indicate that an action is required by the
            # client when the response is received.
        "threatType": "A String", # The threat type for which data is returned.
        "removals": [ # A set of entries to remove from a local threat type's list. In practice,
            # this field is empty or contains exactly one ThreatEntrySet.
          { # A set of threats that should be added or removed from a client's local
              # database.
            "riceHashes": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded 4-byte prefixes of SHA256-formatted entries, using a
                # Golomb-Rice encoding. The hashes are converted to uint32, sorted in
                # ascending order, then delta encoded and stored as encoded_data.
                # compressed removal indices.
              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
                  # is missing (that is, zero) if `num_entries` is zero.
              "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
                  # single integer was encoded, this will be zero and the single value will be
                  # stored in `first_value`.
              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
              "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
                  # integer was encoded, that single integer's value.
            },
            "compressionType": "A String", # The compression type for the entries in this set.
            "rawIndices": { # A set of raw indices to remove from a local list. # The raw removal indices for a local list.
              "indices": [ # The indices to remove from a lexicographically-sorted local list.
                42,
              ],
            },
            "riceIndices": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded local, lexicographically-sorted list indices, using a
                # Golomb-Rice encoding. Used for sending compressed removal indices. The
                # removal indices (uint32) are sorted in ascending order, then delta encoded
                # and stored as encoded_data.
                # compressed removal indices.
              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
                  # is missing (that is, zero) if `num_entries` is zero.
              "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
                  # single integer was encoded, this will be zero and the single value will be
                  # stored in `first_value`.
              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
              "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
                  # integer was encoded, that single integer's value.
            },
            "rawHashes": { # The uncompressed threat entries in hash format of a particular prefix length. # The raw SHA256-formatted entries.
                # Hashes can be anywhere from 4 to 32 bytes in size. A large majority are 4
                # bytes, but some hashes are lengthened if they collide with the hash of a
                # popular URL.
                #
                # Used for sending ThreatEntrySet to clients that do not support compression,
                # or when sending non-4-byte hashes to clients that do support compression.
              "prefixSize": 42, # The number of bytes for each prefix encoded below.  This field can be
                  # anywhere from 4 (shortest prefix) to 32 (full SHA256 hash).
              "rawHashes": "A String", # The hashes, in binary format, concatenated into one long string. Hashes are
                  # sorted in lexicographic order. For JSON API users, hashes are
                  # base64-encoded.
            },
          },
        ],
        "newClientState": "A String", # The new client state, in encrypted format. Opaque to clients.
        "checksum": { # The expected state of a client's local database. # The expected SHA256 hash of the client state; that is, of the sorted list
            # of all hashes present in the database after applying the provided update.
            # If the client state doesn't match the expected state, the client must
            # disregard this update and retry later.
          "sha256": "A String", # The SHA256 hash of the client state; that is, of the sorted list of all
              # hashes present in the database.
        },
        "threatEntryType": "A String", # The format of the threats.
        "additions": [ # A set of entries to add to a local threat type's list. Repeated to allow
            # for a combination of compressed and raw data to be sent in a single
            # response.
          { # A set of threats that should be added or removed from a client's local
              # database.
            "riceHashes": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded 4-byte prefixes of SHA256-formatted entries, using a
                # Golomb-Rice encoding. The hashes are converted to uint32, sorted in
                # ascending order, then delta encoded and stored as encoded_data.
                # compressed removal indices.
              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
                  # is missing (that is, zero) if `num_entries` is zero.
              "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
                  # single integer was encoded, this will be zero and the single value will be
                  # stored in `first_value`.
              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
              "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
                  # integer was encoded, that single integer's value.
            },
            "compressionType": "A String", # The compression type for the entries in this set.
            "rawIndices": { # A set of raw indices to remove from a local list. # The raw removal indices for a local list.
              "indices": [ # The indices to remove from a lexicographically-sorted local list.
                42,
              ],
            },
            "riceIndices": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded local, lexicographically-sorted list indices, using a
                # Golomb-Rice encoding. Used for sending compressed removal indices. The
                # removal indices (uint32) are sorted in ascending order, then delta encoded
                # and stored as encoded_data.
                # compressed removal indices.
              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
                  # is missing (that is, zero) if `num_entries` is zero.
              "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
                  # single integer was encoded, this will be zero and the single value will be
                  # stored in `first_value`.
              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
              "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
                  # integer was encoded, that single integer's value.
            },
            "rawHashes": { # The uncompressed threat entries in hash format of a particular prefix length. # The raw SHA256-formatted entries.
                # Hashes can be anywhere from 4 to 32 bytes in size. A large majority are 4
                # bytes, but some hashes are lengthened if they collide with the hash of a
                # popular URL.
                #
                # Used for sending ThreatEntrySet to clients that do not support compression,
                # or when sending non-4-byte hashes to clients that do support compression.
              "prefixSize": 42, # The number of bytes for each prefix encoded below.  This field can be
                  # anywhere from 4 (shortest prefix) to 32 (full SHA256 hash).
              "rawHashes": "A String", # The hashes, in binary format, concatenated into one long string. Hashes are
                  # sorted in lexicographic order. For JSON API users, hashes are
                  # base64-encoded.
            },
          },
        ],
        "platformType": "A String", # The platform type for which data is returned.
      },
    ],
    "minimumWaitDuration": "A String", # The minimum duration the client must wait before issuing any update
        # request. If this field is not set clients may update as soon as they want.
  }</pre>
</div>

</body></html>