diff --git a/generated/google/apis/safebrowsing_v4.rb b/generated/google/apis/safebrowsing_v4.rb new file mode 100644 index 000000000..f32caaee5 --- /dev/null +++ b/generated/google/apis/safebrowsing_v4.rb @@ -0,0 +1,35 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/safebrowsing_v4/service.rb' +require 'google/apis/safebrowsing_v4/classes.rb' +require 'google/apis/safebrowsing_v4/representations.rb' + +module Google + module Apis + # Safe Browsing API + # + # Enables client applications to check web resources (most commonly URLs) + # against Google-generated lists of unsafe web resources. The Safe Browsing APIs + # are for non-commercial use only. If you need to use APIs to detect malicious + # URLs for commercial purposes – meaning “for sale or revenue-generating + # purposes” – please refer to the Web Risk API. + # + # @see https://developers.google.com/safe-browsing/ + module SafebrowsingV4 + VERSION = 'V4' + REVISION = '20201017' + end + end +end diff --git a/generated/google/apis/safebrowsing_v4/classes.rb b/generated/google/apis/safebrowsing_v4/classes.rb new file mode 100644 index 000000000..85e59b199 --- /dev/null +++ b/generated/google/apis/safebrowsing_v4/classes.rb @@ -0,0 +1,909 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module SafebrowsingV4 + + # The expected state of a client's local database. + class Checksum + include Google::Apis::Core::Hashable + + # The SHA256 hash of the client state; that is, of the sorted list of all hashes + # present in the database. + # Corresponds to the JSON property `sha256` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :sha256 + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @sha256 = args[:sha256] if args.key?(:sha256) + end + end + + # The client metadata associated with Safe Browsing API requests. + class ClientInfo + include Google::Apis::Core::Hashable + + # A client ID that (hopefully) uniquely identifies the client implementation of + # the Safe Browsing API. + # Corresponds to the JSON property `clientId` + # @return [String] + attr_accessor :client_id + + # The version of the client implementation. + # Corresponds to the JSON property `clientVersion` + # @return [String] + attr_accessor :client_version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @client_id = args[:client_id] if args.key?(:client_id) + @client_version = args[:client_version] if args.key?(:client_version) + end + end + + # The constraints for this update. + class Constraints + include Google::Apis::Core::Hashable + + # A client's physical location, expressed as a ISO 31166-1 alpha-2 region code. + # Corresponds to the JSON property `deviceLocation` + # @return [String] + attr_accessor :device_location + + # Requests the lists for a specific language. Expects ISO 639 alpha-2 format. + # Corresponds to the JSON property `language` + # @return [String] + attr_accessor :language + + # Sets the maximum number of entries that the client is willing to have in the + # local database for the specified list. This should be a power of 2 between 2** + # 10 and 2**20. If zero, no database size limit is set. + # Corresponds to the JSON property `maxDatabaseEntries` + # @return [Fixnum] + attr_accessor :max_database_entries + + # The maximum size in number of entries. The update will not contain more + # entries than this value. This should be a power of 2 between 2**10 and 2**20. + # If zero, no update size limit is set. + # Corresponds to the JSON property `maxUpdateEntries` + # @return [Fixnum] + attr_accessor :max_update_entries + + # Requests the list for a specific geographic location. If not set the server + # may pick that value based on the user's IP address. Expects ISO 3166-1 alpha-2 + # format. + # Corresponds to the JSON property `region` + # @return [String] + attr_accessor :region + + # The compression types supported by the client. + # Corresponds to the JSON property `supportedCompressions` + # @return [Array] + attr_accessor :supported_compressions + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @device_location = args[:device_location] if args.key?(:device_location) + @language = args[:language] if args.key?(:language) + @max_database_entries = args[:max_database_entries] if args.key?(:max_database_entries) + @max_update_entries = args[:max_update_entries] if args.key?(:max_update_entries) + @region = args[:region] if args.key?(:region) + @supported_compressions = args[:supported_compressions] if args.key?(:supported_compressions) + end + end + + # 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 ````. + class Empty + include Google::Apis::Core::Hashable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + end + end + + # Describes a Safe Browsing API update request. Clients can request updates for + # multiple lists in a single request. NOTE: Field index 2 is unused. NEXT: 5 + class FetchThreatListUpdatesRequest + include Google::Apis::Core::Hashable + + # The client metadata associated with Safe Browsing API requests. + # Corresponds to the JSON property `client` + # @return [Google::Apis::SafebrowsingV4::ClientInfo] + attr_accessor :client + + # The requested threat list updates. + # Corresponds to the JSON property `listUpdateRequests` + # @return [Array] + attr_accessor :list_update_requests + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @client = args[:client] if args.key?(:client) + @list_update_requests = args[:list_update_requests] if args.key?(:list_update_requests) + end + end + + # + class FetchThreatListUpdatesResponse + include Google::Apis::Core::Hashable + + # The list updates requested by the clients. + # Corresponds to the JSON property `listUpdateResponses` + # @return [Array] + attr_accessor :list_update_responses + + # 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. + # Corresponds to the JSON property `minimumWaitDuration` + # @return [String] + attr_accessor :minimum_wait_duration + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @list_update_responses = args[:list_update_responses] if args.key?(:list_update_responses) + @minimum_wait_duration = args[:minimum_wait_duration] if args.key?(:minimum_wait_duration) + end + end + + # Request to return full hashes matched by the provided hash prefixes. + class FindFullHashesRequest + include Google::Apis::Core::Hashable + + # The client metadata associated with Safe Browsing API requests. + # Corresponds to the JSON property `apiClient` + # @return [Google::Apis::SafebrowsingV4::ClientInfo] + attr_accessor :api_client + + # The client metadata associated with Safe Browsing API requests. + # Corresponds to the JSON property `client` + # @return [Google::Apis::SafebrowsingV4::ClientInfo] + attr_accessor :client + + # The current client states for each of the client's local threat lists. + # Corresponds to the JSON property `clientStates` + # @return [Array] + attr_accessor :client_states + + # The information regarding one or more threats that a client submits when + # checking for matches in threat lists. + # Corresponds to the JSON property `threatInfo` + # @return [Google::Apis::SafebrowsingV4::ThreatInfo] + attr_accessor :threat_info + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @api_client = args[:api_client] if args.key?(:api_client) + @client = args[:client] if args.key?(:client) + @client_states = args[:client_states] if args.key?(:client_states) + @threat_info = args[:threat_info] if args.key?(:threat_info) + end + end + + # + class FindFullHashesResponse + include Google::Apis::Core::Hashable + + # The full hashes that matched the requested prefixes. + # Corresponds to the JSON property `matches` + # @return [Array] + attr_accessor :matches + + # 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. + # Corresponds to the JSON property `minimumWaitDuration` + # @return [String] + attr_accessor :minimum_wait_duration + + # For requested entities that did not match the threat list, how long to cache + # the response. + # Corresponds to the JSON property `negativeCacheDuration` + # @return [String] + attr_accessor :negative_cache_duration + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @matches = args[:matches] if args.key?(:matches) + @minimum_wait_duration = args[:minimum_wait_duration] if args.key?(:minimum_wait_duration) + @negative_cache_duration = args[:negative_cache_duration] if args.key?(:negative_cache_duration) + end + end + + # Request to check entries against lists. + class FindThreatMatchesRequest + include Google::Apis::Core::Hashable + + # The client metadata associated with Safe Browsing API requests. + # Corresponds to the JSON property `client` + # @return [Google::Apis::SafebrowsingV4::ClientInfo] + attr_accessor :client + + # The information regarding one or more threats that a client submits when + # checking for matches in threat lists. + # Corresponds to the JSON property `threatInfo` + # @return [Google::Apis::SafebrowsingV4::ThreatInfo] + attr_accessor :threat_info + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @client = args[:client] if args.key?(:client) + @threat_info = args[:threat_info] if args.key?(:threat_info) + end + end + + # + class FindThreatMatchesResponse + include Google::Apis::Core::Hashable + + # The threat list matches. + # Corresponds to the JSON property `matches` + # @return [Array] + attr_accessor :matches + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @matches = args[:matches] if args.key?(:matches) + end + end + + # + class ListThreatListsResponse + include Google::Apis::Core::Hashable + + # The lists available for download by the client. + # Corresponds to the JSON property `threatLists` + # @return [Array] + attr_accessor :threat_lists + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @threat_lists = args[:threat_lists] if args.key?(:threat_lists) + end + end + + # A single list update request. + class ListUpdateRequest + include Google::Apis::Core::Hashable + + # The constraints for this update. + # Corresponds to the JSON property `constraints` + # @return [Google::Apis::SafebrowsingV4::Constraints] + attr_accessor :constraints + + # The type of platform at risk by entries present in the list. + # Corresponds to the JSON property `platformType` + # @return [String] + attr_accessor :platform_type + + # The current state of the client for the requested list (the encrypted client + # state that was received from the last successful list update). + # Corresponds to the JSON property `state` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :state + + # The types of entries present in the list. + # Corresponds to the JSON property `threatEntryType` + # @return [String] + attr_accessor :threat_entry_type + + # The type of threat posed by entries present in the list. + # Corresponds to the JSON property `threatType` + # @return [String] + attr_accessor :threat_type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @constraints = args[:constraints] if args.key?(:constraints) + @platform_type = args[:platform_type] if args.key?(:platform_type) + @state = args[:state] if args.key?(:state) + @threat_entry_type = args[:threat_entry_type] if args.key?(:threat_entry_type) + @threat_type = args[:threat_type] if args.key?(:threat_type) + end + end + + # An update to an individual list. + class ListUpdateResponse + include Google::Apis::Core::Hashable + + # 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. + # Corresponds to the JSON property `additions` + # @return [Array] + attr_accessor :additions + + # The expected state of a client's local database. + # Corresponds to the JSON property `checksum` + # @return [Google::Apis::SafebrowsingV4::Checksum] + attr_accessor :checksum + + # The new client state, in encrypted format. Opaque to clients. + # Corresponds to the JSON property `newClientState` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :new_client_state + + # The platform type for which data is returned. + # Corresponds to the JSON property `platformType` + # @return [String] + attr_accessor :platform_type + + # A set of entries to remove from a local threat type's list. In practice, this + # field is empty or contains exactly one ThreatEntrySet. + # Corresponds to the JSON property `removals` + # @return [Array] + attr_accessor :removals + + # The type of response. This may indicate that an action is required by the + # client when the response is received. + # Corresponds to the JSON property `responseType` + # @return [String] + attr_accessor :response_type + + # The format of the threats. + # Corresponds to the JSON property `threatEntryType` + # @return [String] + attr_accessor :threat_entry_type + + # The threat type for which data is returned. + # Corresponds to the JSON property `threatType` + # @return [String] + attr_accessor :threat_type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @additions = args[:additions] if args.key?(:additions) + @checksum = args[:checksum] if args.key?(:checksum) + @new_client_state = args[:new_client_state] if args.key?(:new_client_state) + @platform_type = args[:platform_type] if args.key?(:platform_type) + @removals = args[:removals] if args.key?(:removals) + @response_type = args[:response_type] if args.key?(:response_type) + @threat_entry_type = args[:threat_entry_type] if args.key?(:threat_entry_type) + @threat_type = args[:threat_type] if args.key?(:threat_type) + end + end + + # A single metadata entry. + class MetadataEntry + include Google::Apis::Core::Hashable + + # The metadata entry key. For JSON requests, the key is base64-encoded. + # Corresponds to the JSON property `key` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :key + + # The metadata entry value. For JSON requests, the value is base64-encoded. + # Corresponds to the JSON property `value` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :value + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @key = args[:key] if args.key?(:key) + @value = args[:value] if args.key?(:value) + end + end + + # The uncompressed threat entries in hash format of a particular prefix length. + # 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. + class RawHashes + include Google::Apis::Core::Hashable + + # The number of bytes for each prefix encoded below. This field can be anywhere + # from 4 (shortest prefix) to 32 (full SHA256 hash). + # Corresponds to the JSON property `prefixSize` + # @return [Fixnum] + attr_accessor :prefix_size + + # The hashes, in binary format, concatenated into one long string. Hashes are + # sorted in lexicographic order. For JSON API users, hashes are base64-encoded. + # Corresponds to the JSON property `rawHashes` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :raw_hashes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @prefix_size = args[:prefix_size] if args.key?(:prefix_size) + @raw_hashes = args[:raw_hashes] if args.key?(:raw_hashes) + end + end + + # A set of raw indices to remove from a local list. + class RawIndices + include Google::Apis::Core::Hashable + + # The indices to remove from a lexicographically-sorted local list. + # Corresponds to the JSON property `indices` + # @return [Array] + attr_accessor :indices + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @indices = args[:indices] if args.key?(:indices) + end + end + + # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or + # compressed removal indices. + class RiceDeltaEncoding + include Google::Apis::Core::Hashable + + # The encoded deltas that are encoded using the Golomb-Rice coder. + # Corresponds to the JSON property `encodedData` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :encoded_data + + # The offset of the first entry in the encoded data, or, if only a single + # integer was encoded, that single integer's value. If the field is empty or + # missing, assume zero. + # Corresponds to the JSON property `firstValue` + # @return [Fixnum] + attr_accessor :first_value + + # 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`. + # Corresponds to the JSON property `numEntries` + # @return [Fixnum] + attr_accessor :num_entries + + # The Golomb-Rice parameter, which is a number between 2 and 28. This field is + # missing (that is, zero) if `num_entries` is zero. + # Corresponds to the JSON property `riceParameter` + # @return [Fixnum] + attr_accessor :rice_parameter + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @encoded_data = args[:encoded_data] if args.key?(:encoded_data) + @first_value = args[:first_value] if args.key?(:first_value) + @num_entries = args[:num_entries] if args.key?(:num_entries) + @rice_parameter = args[:rice_parameter] if args.key?(:rice_parameter) + end + end + + # An individual threat; for example, a malicious URL or its hash representation. + # Only one of these fields should be set. + class ThreatEntry + include Google::Apis::Core::Hashable + + # The digest of an executable in SHA256 format. The API supports both binary and + # hex digests. For JSON requests, digests are base64-encoded. + # Corresponds to the JSON property `digest` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :digest + + # 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. + # Corresponds to the JSON property `hash` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :hash_prop + + # A URL. + # Corresponds to the JSON property `url` + # @return [String] + attr_accessor :url + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @hash_prop = args[:hash_prop] if args.key?(:hash_prop) + @url = args[:url] if args.key?(:url) + end + end + + # The metadata associated with a specific threat entry. The client is expected + # to know the metadata key/value pairs associated with each threat type. + class ThreatEntryMetadata + include Google::Apis::Core::Hashable + + # The metadata entries. + # Corresponds to the JSON property `entries` + # @return [Array] + attr_accessor :entries + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @entries = args[:entries] if args.key?(:entries) + end + end + + # A set of threats that should be added or removed from a client's local + # database. + class ThreatEntrySet + include Google::Apis::Core::Hashable + + # The compression type for the entries in this set. + # Corresponds to the JSON property `compressionType` + # @return [String] + attr_accessor :compression_type + + # The uncompressed threat entries in hash format of a particular prefix length. + # 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. + # Corresponds to the JSON property `rawHashes` + # @return [Google::Apis::SafebrowsingV4::RawHashes] + attr_accessor :raw_hashes + + # A set of raw indices to remove from a local list. + # Corresponds to the JSON property `rawIndices` + # @return [Google::Apis::SafebrowsingV4::RawIndices] + attr_accessor :raw_indices + + # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or + # compressed removal indices. + # Corresponds to the JSON property `riceHashes` + # @return [Google::Apis::SafebrowsingV4::RiceDeltaEncoding] + attr_accessor :rice_hashes + + # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or + # compressed removal indices. + # Corresponds to the JSON property `riceIndices` + # @return [Google::Apis::SafebrowsingV4::RiceDeltaEncoding] + attr_accessor :rice_indices + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @compression_type = args[:compression_type] if args.key?(:compression_type) + @raw_hashes = args[:raw_hashes] if args.key?(:raw_hashes) + @raw_indices = args[:raw_indices] if args.key?(:raw_indices) + @rice_hashes = args[:rice_hashes] if args.key?(:rice_hashes) + @rice_indices = args[:rice_indices] if args.key?(:rice_indices) + end + end + + # + class ThreatHit + include Google::Apis::Core::Hashable + + # The client metadata associated with Safe Browsing API requests. + # Corresponds to the JSON property `clientInfo` + # @return [Google::Apis::SafebrowsingV4::ClientInfo] + attr_accessor :client_info + + # An individual threat; for example, a malicious URL or its hash representation. + # Only one of these fields should be set. + # Corresponds to the JSON property `entry` + # @return [Google::Apis::SafebrowsingV4::ThreatEntry] + attr_accessor :entry + + # The platform type reported. + # Corresponds to the JSON property `platformType` + # @return [String] + attr_accessor :platform_type + + # The resources related to the threat hit. + # Corresponds to the JSON property `resources` + # @return [Array] + attr_accessor :resources + + # The threat type reported. + # Corresponds to the JSON property `threatType` + # @return [String] + attr_accessor :threat_type + + # Details about the user that encountered the threat. + # Corresponds to the JSON property `userInfo` + # @return [Google::Apis::SafebrowsingV4::UserInfo] + attr_accessor :user_info + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @client_info = args[:client_info] if args.key?(:client_info) + @entry = args[:entry] if args.key?(:entry) + @platform_type = args[:platform_type] if args.key?(:platform_type) + @resources = args[:resources] if args.key?(:resources) + @threat_type = args[:threat_type] if args.key?(:threat_type) + @user_info = args[:user_info] if args.key?(:user_info) + end + end + + # The information regarding one or more threats that a client submits when + # checking for matches in threat lists. + class ThreatInfo + include Google::Apis::Core::Hashable + + # The platform types to be checked. + # Corresponds to the JSON property `platformTypes` + # @return [Array] + attr_accessor :platform_types + + # The threat entries to be checked. + # Corresponds to the JSON property `threatEntries` + # @return [Array] + attr_accessor :threat_entries + + # The entry types to be checked. + # Corresponds to the JSON property `threatEntryTypes` + # @return [Array] + attr_accessor :threat_entry_types + + # The threat types to be checked. + # Corresponds to the JSON property `threatTypes` + # @return [Array] + attr_accessor :threat_types + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @platform_types = args[:platform_types] if args.key?(:platform_types) + @threat_entries = args[:threat_entries] if args.key?(:threat_entries) + @threat_entry_types = args[:threat_entry_types] if args.key?(:threat_entry_types) + @threat_types = args[:threat_types] if args.key?(:threat_types) + end + end + + # Describes an individual threat list. A list is defined by three parameters: + # the type of threat posed, the type of platform targeted by the threat, and the + # type of entries in the list. + class ThreatListDescriptor + include Google::Apis::Core::Hashable + + # The platform type targeted by the list's entries. + # Corresponds to the JSON property `platformType` + # @return [String] + attr_accessor :platform_type + + # The entry types contained in the list. + # Corresponds to the JSON property `threatEntryType` + # @return [String] + attr_accessor :threat_entry_type + + # The threat type posed by the list's entries. + # Corresponds to the JSON property `threatType` + # @return [String] + attr_accessor :threat_type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @platform_type = args[:platform_type] if args.key?(:platform_type) + @threat_entry_type = args[:threat_entry_type] if args.key?(:threat_entry_type) + @threat_type = args[:threat_type] if args.key?(:threat_type) + end + end + + # A match when checking a threat entry in the Safe Browsing threat lists. + class ThreatMatch + include Google::Apis::Core::Hashable + + # The cache lifetime for the returned match. Clients must not cache this + # response for more than this duration to avoid false positives. + # Corresponds to the JSON property `cacheDuration` + # @return [String] + attr_accessor :cache_duration + + # The platform type matching this threat. + # Corresponds to the JSON property `platformType` + # @return [String] + attr_accessor :platform_type + + # An individual threat; for example, a malicious URL or its hash representation. + # Only one of these fields should be set. + # Corresponds to the JSON property `threat` + # @return [Google::Apis::SafebrowsingV4::ThreatEntry] + attr_accessor :threat + + # The metadata associated with a specific threat entry. The client is expected + # to know the metadata key/value pairs associated with each threat type. + # Corresponds to the JSON property `threatEntryMetadata` + # @return [Google::Apis::SafebrowsingV4::ThreatEntryMetadata] + attr_accessor :threat_entry_metadata + + # The threat entry type matching this threat. + # Corresponds to the JSON property `threatEntryType` + # @return [String] + attr_accessor :threat_entry_type + + # The threat type matching this threat. + # Corresponds to the JSON property `threatType` + # @return [String] + attr_accessor :threat_type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cache_duration = args[:cache_duration] if args.key?(:cache_duration) + @platform_type = args[:platform_type] if args.key?(:platform_type) + @threat = args[:threat] if args.key?(:threat) + @threat_entry_metadata = args[:threat_entry_metadata] if args.key?(:threat_entry_metadata) + @threat_entry_type = args[:threat_entry_type] if args.key?(:threat_entry_type) + @threat_type = args[:threat_type] if args.key?(:threat_type) + end + end + + # A single resource related to a threat hit. + class ThreatSource + include Google::Apis::Core::Hashable + + # Referrer of the resource. Only set if the referrer is available. + # Corresponds to the JSON property `referrer` + # @return [String] + attr_accessor :referrer + + # The remote IP of the resource in ASCII format. Either IPv4 or IPv6. + # Corresponds to the JSON property `remoteIp` + # @return [String] + attr_accessor :remote_ip + + # The type of source reported. + # Corresponds to the JSON property `type` + # @return [String] + attr_accessor :type + + # The URL of the resource. + # Corresponds to the JSON property `url` + # @return [String] + attr_accessor :url + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @referrer = args[:referrer] if args.key?(:referrer) + @remote_ip = args[:remote_ip] if args.key?(:remote_ip) + @type = args[:type] if args.key?(:type) + @url = args[:url] if args.key?(:url) + end + end + + # Details about the user that encountered the threat. + class UserInfo + include Google::Apis::Core::Hashable + + # The UN M.49 region code associated with the user's location. + # Corresponds to the JSON property `regionCode` + # @return [String] + attr_accessor :region_code + + # Unique user identifier defined by the client. + # Corresponds to the JSON property `userId` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :user_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @region_code = args[:region_code] if args.key?(:region_code) + @user_id = args[:user_id] if args.key?(:user_id) + end + end + end + end +end diff --git a/generated/google/apis/safebrowsing_v4/representations.rb b/generated/google/apis/safebrowsing_v4/representations.rb new file mode 100644 index 000000000..37b375e24 --- /dev/null +++ b/generated/google/apis/safebrowsing_v4/representations.rb @@ -0,0 +1,445 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module SafebrowsingV4 + + class Checksum + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ClientInfo + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Constraints + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Empty + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class FetchThreatListUpdatesRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class FetchThreatListUpdatesResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class FindFullHashesRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class FindFullHashesResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class FindThreatMatchesRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class FindThreatMatchesResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ListThreatListsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ListUpdateRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ListUpdateResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class MetadataEntry + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class RawHashes + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class RawIndices + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class RiceDeltaEncoding + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ThreatEntry + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ThreatEntryMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ThreatEntrySet + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ThreatHit + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ThreatInfo + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ThreatListDescriptor + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ThreatMatch + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ThreatSource + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class UserInfo + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Checksum + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :sha256, :base64 => true, as: 'sha256' + end + end + + class ClientInfo + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :client_id, as: 'clientId' + property :client_version, as: 'clientVersion' + end + end + + class Constraints + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :device_location, as: 'deviceLocation' + property :language, as: 'language' + property :max_database_entries, as: 'maxDatabaseEntries' + property :max_update_entries, as: 'maxUpdateEntries' + property :region, as: 'region' + collection :supported_compressions, as: 'supportedCompressions' + end + end + + class Empty + # @private + class Representation < Google::Apis::Core::JsonRepresentation + end + end + + class FetchThreatListUpdatesRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :client, as: 'client', class: Google::Apis::SafebrowsingV4::ClientInfo, decorator: Google::Apis::SafebrowsingV4::ClientInfo::Representation + + collection :list_update_requests, as: 'listUpdateRequests', class: Google::Apis::SafebrowsingV4::ListUpdateRequest, decorator: Google::Apis::SafebrowsingV4::ListUpdateRequest::Representation + + end + end + + class FetchThreatListUpdatesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :list_update_responses, as: 'listUpdateResponses', class: Google::Apis::SafebrowsingV4::ListUpdateResponse, decorator: Google::Apis::SafebrowsingV4::ListUpdateResponse::Representation + + property :minimum_wait_duration, as: 'minimumWaitDuration' + end + end + + class FindFullHashesRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :api_client, as: 'apiClient', class: Google::Apis::SafebrowsingV4::ClientInfo, decorator: Google::Apis::SafebrowsingV4::ClientInfo::Representation + + property :client, as: 'client', class: Google::Apis::SafebrowsingV4::ClientInfo, decorator: Google::Apis::SafebrowsingV4::ClientInfo::Representation + + collection :client_states, as: 'clientStates' + property :threat_info, as: 'threatInfo', class: Google::Apis::SafebrowsingV4::ThreatInfo, decorator: Google::Apis::SafebrowsingV4::ThreatInfo::Representation + + end + end + + class FindFullHashesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :matches, as: 'matches', class: Google::Apis::SafebrowsingV4::ThreatMatch, decorator: Google::Apis::SafebrowsingV4::ThreatMatch::Representation + + property :minimum_wait_duration, as: 'minimumWaitDuration' + property :negative_cache_duration, as: 'negativeCacheDuration' + end + end + + class FindThreatMatchesRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :client, as: 'client', class: Google::Apis::SafebrowsingV4::ClientInfo, decorator: Google::Apis::SafebrowsingV4::ClientInfo::Representation + + property :threat_info, as: 'threatInfo', class: Google::Apis::SafebrowsingV4::ThreatInfo, decorator: Google::Apis::SafebrowsingV4::ThreatInfo::Representation + + end + end + + class FindThreatMatchesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :matches, as: 'matches', class: Google::Apis::SafebrowsingV4::ThreatMatch, decorator: Google::Apis::SafebrowsingV4::ThreatMatch::Representation + + end + end + + class ListThreatListsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :threat_lists, as: 'threatLists', class: Google::Apis::SafebrowsingV4::ThreatListDescriptor, decorator: Google::Apis::SafebrowsingV4::ThreatListDescriptor::Representation + + end + end + + class ListUpdateRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :constraints, as: 'constraints', class: Google::Apis::SafebrowsingV4::Constraints, decorator: Google::Apis::SafebrowsingV4::Constraints::Representation + + property :platform_type, as: 'platformType' + property :state, :base64 => true, as: 'state' + property :threat_entry_type, as: 'threatEntryType' + property :threat_type, as: 'threatType' + end + end + + class ListUpdateResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :additions, as: 'additions', class: Google::Apis::SafebrowsingV4::ThreatEntrySet, decorator: Google::Apis::SafebrowsingV4::ThreatEntrySet::Representation + + property :checksum, as: 'checksum', class: Google::Apis::SafebrowsingV4::Checksum, decorator: Google::Apis::SafebrowsingV4::Checksum::Representation + + property :new_client_state, :base64 => true, as: 'newClientState' + property :platform_type, as: 'platformType' + collection :removals, as: 'removals', class: Google::Apis::SafebrowsingV4::ThreatEntrySet, decorator: Google::Apis::SafebrowsingV4::ThreatEntrySet::Representation + + property :response_type, as: 'responseType' + property :threat_entry_type, as: 'threatEntryType' + property :threat_type, as: 'threatType' + end + end + + class MetadataEntry + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :key, :base64 => true, as: 'key' + property :value, :base64 => true, as: 'value' + end + end + + class RawHashes + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :prefix_size, as: 'prefixSize' + property :raw_hashes, :base64 => true, as: 'rawHashes' + end + end + + class RawIndices + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :indices, as: 'indices' + end + end + + class RiceDeltaEncoding + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :encoded_data, :base64 => true, as: 'encodedData' + property :first_value, :numeric_string => true, as: 'firstValue' + property :num_entries, as: 'numEntries' + property :rice_parameter, as: 'riceParameter' + end + end + + class ThreatEntry + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, :base64 => true, as: 'digest' + property :hash_prop, :base64 => true, as: 'hash' + property :url, as: 'url' + end + end + + class ThreatEntryMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :entries, as: 'entries', class: Google::Apis::SafebrowsingV4::MetadataEntry, decorator: Google::Apis::SafebrowsingV4::MetadataEntry::Representation + + end + end + + class ThreatEntrySet + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :compression_type, as: 'compressionType' + property :raw_hashes, as: 'rawHashes', class: Google::Apis::SafebrowsingV4::RawHashes, decorator: Google::Apis::SafebrowsingV4::RawHashes::Representation + + property :raw_indices, as: 'rawIndices', class: Google::Apis::SafebrowsingV4::RawIndices, decorator: Google::Apis::SafebrowsingV4::RawIndices::Representation + + property :rice_hashes, as: 'riceHashes', class: Google::Apis::SafebrowsingV4::RiceDeltaEncoding, decorator: Google::Apis::SafebrowsingV4::RiceDeltaEncoding::Representation + + property :rice_indices, as: 'riceIndices', class: Google::Apis::SafebrowsingV4::RiceDeltaEncoding, decorator: Google::Apis::SafebrowsingV4::RiceDeltaEncoding::Representation + + end + end + + class ThreatHit + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :client_info, as: 'clientInfo', class: Google::Apis::SafebrowsingV4::ClientInfo, decorator: Google::Apis::SafebrowsingV4::ClientInfo::Representation + + property :entry, as: 'entry', class: Google::Apis::SafebrowsingV4::ThreatEntry, decorator: Google::Apis::SafebrowsingV4::ThreatEntry::Representation + + property :platform_type, as: 'platformType' + collection :resources, as: 'resources', class: Google::Apis::SafebrowsingV4::ThreatSource, decorator: Google::Apis::SafebrowsingV4::ThreatSource::Representation + + property :threat_type, as: 'threatType' + property :user_info, as: 'userInfo', class: Google::Apis::SafebrowsingV4::UserInfo, decorator: Google::Apis::SafebrowsingV4::UserInfo::Representation + + end + end + + class ThreatInfo + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :platform_types, as: 'platformTypes' + collection :threat_entries, as: 'threatEntries', class: Google::Apis::SafebrowsingV4::ThreatEntry, decorator: Google::Apis::SafebrowsingV4::ThreatEntry::Representation + + collection :threat_entry_types, as: 'threatEntryTypes' + collection :threat_types, as: 'threatTypes' + end + end + + class ThreatListDescriptor + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :platform_type, as: 'platformType' + property :threat_entry_type, as: 'threatEntryType' + property :threat_type, as: 'threatType' + end + end + + class ThreatMatch + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cache_duration, as: 'cacheDuration' + property :platform_type, as: 'platformType' + property :threat, as: 'threat', class: Google::Apis::SafebrowsingV4::ThreatEntry, decorator: Google::Apis::SafebrowsingV4::ThreatEntry::Representation + + property :threat_entry_metadata, as: 'threatEntryMetadata', class: Google::Apis::SafebrowsingV4::ThreatEntryMetadata, decorator: Google::Apis::SafebrowsingV4::ThreatEntryMetadata::Representation + + property :threat_entry_type, as: 'threatEntryType' + property :threat_type, as: 'threatType' + end + end + + class ThreatSource + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :referrer, as: 'referrer' + property :remote_ip, as: 'remoteIp' + property :type, as: 'type' + property :url, as: 'url' + end + end + + class UserInfo + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :region_code, as: 'regionCode' + property :user_id, :base64 => true, as: 'userId' + end + end + end + end +end diff --git a/generated/google/apis/safebrowsing_v4/service.rb b/generated/google/apis/safebrowsing_v4/service.rb new file mode 100644 index 000000000..8b91288b2 --- /dev/null +++ b/generated/google/apis/safebrowsing_v4/service.rb @@ -0,0 +1,286 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module SafebrowsingV4 + # Safe Browsing API + # + # Enables client applications to check web resources (most commonly URLs) + # against Google-generated lists of unsafe web resources. The Safe Browsing APIs + # are for non-commercial use only. If you need to use APIs to detect malicious + # URLs for commercial purposes – meaning “for sale or revenue-generating + # purposes” – please refer to the Web Risk API. + # + # @example + # require 'google/apis/safebrowsing_v4' + # + # Safebrowsing = Google::Apis::SafebrowsingV4 # Alias the module + # service = Safebrowsing::SafebrowsingService.new + # + # @see https://developers.google.com/safe-browsing/ + class SafebrowsingService < Google::Apis::Core::BaseService + # @return [String] + # API key. Your API key identifies your project and provides you with API access, + # quota, and reports. Required unless you provide an OAuth 2.0 token. + attr_accessor :key + + # @return [String] + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + attr_accessor :quota_user + + def initialize + super('https://safebrowsing.googleapis.com/', '') + @batch_path = 'batch' + end + + # + # @param [String] encoded_request + # A serialized FindFullHashesRequest proto. + # @param [String] client_id + # A client ID that (hopefully) uniquely identifies the client implementation of + # the Safe Browsing API. + # @param [String] client_version + # The version of the client implementation. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::SafebrowsingV4::FindFullHashesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::SafebrowsingV4::FindFullHashesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_encoded_full_hash(encoded_request, client_id: nil, client_version: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v4/encodedFullHashes/{encodedRequest}', options) + command.response_representation = Google::Apis::SafebrowsingV4::FindFullHashesResponse::Representation + command.response_class = Google::Apis::SafebrowsingV4::FindFullHashesResponse + command.params['encodedRequest'] = encoded_request unless encoded_request.nil? + command.query['clientId'] = client_id unless client_id.nil? + command.query['clientVersion'] = client_version unless client_version.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # + # @param [String] encoded_request + # A serialized FetchThreatListUpdatesRequest proto. + # @param [String] client_id + # A client ID that uniquely identifies the client implementation of the Safe + # Browsing API. + # @param [String] client_version + # The version of the client implementation. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::SafebrowsingV4::FetchThreatListUpdatesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::SafebrowsingV4::FetchThreatListUpdatesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_encoded_update(encoded_request, client_id: nil, client_version: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v4/encodedUpdates/{encodedRequest}', options) + command.response_representation = Google::Apis::SafebrowsingV4::FetchThreatListUpdatesResponse::Representation + command.response_class = Google::Apis::SafebrowsingV4::FetchThreatListUpdatesResponse + command.params['encodedRequest'] = encoded_request unless encoded_request.nil? + command.query['clientId'] = client_id unless client_id.nil? + command.query['clientVersion'] = client_version unless client_version.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Finds the full hashes that match the requested hash prefixes. + # @param [Google::Apis::SafebrowsingV4::FindFullHashesRequest] find_full_hashes_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::SafebrowsingV4::FindFullHashesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::SafebrowsingV4::FindFullHashesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def find_full_hashes(find_full_hashes_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v4/fullHashes:find', options) + command.request_representation = Google::Apis::SafebrowsingV4::FindFullHashesRequest::Representation + command.request_object = find_full_hashes_request_object + command.response_representation = Google::Apis::SafebrowsingV4::FindFullHashesResponse::Representation + command.response_class = Google::Apis::SafebrowsingV4::FindFullHashesResponse + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Reports a Safe Browsing threat list hit to Google. Only projects with + # TRUSTED_REPORTER visibility can use this method. + # @param [Google::Apis::SafebrowsingV4::ThreatHit] threat_hit_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::SafebrowsingV4::Empty] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::SafebrowsingV4::Empty] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def create_threat_hit(threat_hit_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v4/threatHits', options) + command.request_representation = Google::Apis::SafebrowsingV4::ThreatHit::Representation + command.request_object = threat_hit_object + command.response_representation = Google::Apis::SafebrowsingV4::Empty::Representation + command.response_class = Google::Apis::SafebrowsingV4::Empty + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Fetches the most recent threat list updates. A client can request updates for + # multiple lists at once. + # @param [Google::Apis::SafebrowsingV4::FetchThreatListUpdatesRequest] fetch_threat_list_updates_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::SafebrowsingV4::FetchThreatListUpdatesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::SafebrowsingV4::FetchThreatListUpdatesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def fetch_threat_list_updates(fetch_threat_list_updates_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v4/threatListUpdates:fetch', options) + command.request_representation = Google::Apis::SafebrowsingV4::FetchThreatListUpdatesRequest::Representation + command.request_object = fetch_threat_list_updates_request_object + command.response_representation = Google::Apis::SafebrowsingV4::FetchThreatListUpdatesResponse::Representation + command.response_class = Google::Apis::SafebrowsingV4::FetchThreatListUpdatesResponse + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists the Safe Browsing threat lists available for download. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::SafebrowsingV4::ListThreatListsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::SafebrowsingV4::ListThreatListsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_threat_lists(fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v4/threatLists', options) + command.response_representation = Google::Apis::SafebrowsingV4::ListThreatListsResponse::Representation + command.response_class = Google::Apis::SafebrowsingV4::ListThreatListsResponse + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Finds the threat entries that match the Safe Browsing lists. + # @param [Google::Apis::SafebrowsingV4::FindThreatMatchesRequest] find_threat_matches_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::SafebrowsingV4::FindThreatMatchesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::SafebrowsingV4::FindThreatMatchesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def find_threat_matches(find_threat_matches_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v4/threatMatches:find', options) + command.request_representation = Google::Apis::SafebrowsingV4::FindThreatMatchesRequest::Representation + command.request_object = find_threat_matches_request_object + command.response_representation = Google::Apis::SafebrowsingV4::FindThreatMatchesResponse::Representation + command.response_class = Google::Apis::SafebrowsingV4::FindThreatMatchesResponse + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + protected + + def apply_command_defaults(command) + command.query['key'] = key unless key.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + end + end + end + end +end diff --git a/generated/google/apis/safebrowsing_v4/synth.metadata b/generated/google/apis/safebrowsing_v4/synth.metadata new file mode 100644 index 000000000..fb5a74b21 --- /dev/null +++ b/generated/google/apis/safebrowsing_v4/synth.metadata @@ -0,0 +1,11 @@ +{ + "sources": [ + { + "git": { + "name": ".", + "remote": "https://github.com/googleapis/google-api-ruby-client.git", + "sha": "9840c481849200572321532ecc3b128bebbc1583" + } + } + ] +} \ No newline at end of file