feat: Automated regeneration of safebrowsing v4 client (#1305)

This PR was generated using Autosynth. 🌈


<details><summary>Log from Synthtool</summary>

```
2020-10-28 03:12:16,781 synthtool [DEBUG] > Executing /home/kbuilder/.cache/synthtool/google-api-ruby-client/synth.py.
On branch autosynth-safebrowsing-v4
nothing to commit, working tree clean
2020-10-28 03:12:16,811 synthtool [DEBUG] > Running: docker run --rm -v/home/kbuilder/.cache/synthtool/google-api-ruby-client:/workspace -v/var/run/docker.sock:/var/run/docker.sock -w /workspace --entrypoint script/synth.rb gcr.io/cloud-devrel-kokoro-resources/yoshi-ruby/autosynth safebrowsing v4
DEBUG:synthtool:Running: docker run --rm -v/home/kbuilder/.cache/synthtool/google-api-ruby-client:/workspace -v/var/run/docker.sock:/var/run/docker.sock -w /workspace --entrypoint script/synth.rb gcr.io/cloud-devrel-kokoro-resources/yoshi-ruby/autosynth safebrowsing v4
bundle install
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and
installing your bundle as root will break this application for all non-root
users on this machine.
The dependency jruby-openssl (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Fetching rake 11.3.0
Installing rake 11.3.0
Fetching concurrent-ruby 1.1.7
Installing concurrent-ruby 1.1.7
Fetching i18n 1.8.5
Installing i18n 1.8.5
Fetching minitest 5.14.2
Installing minitest 5.14.2
Fetching thread_safe 0.3.6
Installing thread_safe 0.3.6
Fetching tzinfo 1.2.7
Installing tzinfo 1.2.7
Fetching activesupport 5.0.7.2
Installing activesupport 5.0.7.2
Fetching public_suffix 4.0.6
Installing public_suffix 4.0.6
Fetching addressable 2.7.0
Installing addressable 2.7.0
Fetching ast 2.4.1
Installing ast 2.4.1
Using bundler 2.1.4
Fetching byebug 11.1.3
Installing byebug 11.1.3 with native extensions
Fetching coderay 1.1.3
Installing coderay 1.1.3
Fetching json 2.3.1
Installing json 2.3.1 with native extensions
Fetching docile 1.3.2
Installing docile 1.3.2
Fetching simplecov-html 0.10.2
Installing simplecov-html 0.10.2
Fetching simplecov 0.16.1
Installing simplecov 0.16.1
Using sync 0.5.0
Fetching tins 1.26.0
Installing tins 1.26.0
Fetching term-ansicolor 1.7.1
Installing term-ansicolor 1.7.1
Fetching thor 0.20.3
Installing thor 0.20.3
Fetching coveralls 0.8.23
Installing coveralls 0.8.23
Fetching crack 0.4.4
Installing crack 0.4.4
Fetching declarative 0.0.20
Installing declarative 0.0.20
Fetching declarative-option 0.1.0
Installing declarative-option 0.1.0
Fetching diff-lcs 1.4.4
Installing diff-lcs 1.4.4
Fetching dotenv 2.7.6
Installing dotenv 2.7.6
Fetching fakefs 0.20.1
Installing fakefs 0.20.1
Fetching multipart-post 2.1.1
Installing multipart-post 2.1.1
Fetching ruby2_keywords 0.0.2
Installing ruby2_keywords 0.0.2
Fetching faraday 1.1.0
Installing faraday 1.1.0
Fetching gems 1.2.0
Installing gems 1.2.0
Fetching github-markup 1.7.0
Installing github-markup 1.7.0
Fetching jwt 2.2.2
Installing jwt 2.2.2
Fetching memoist 0.16.2
Installing memoist 0.16.2
Fetching multi_json 1.15.0
Installing multi_json 1.15.0
Fetching os 0.9.6
Installing os 0.9.6
Fetching signet 0.14.0
Installing signet 0.14.0
Fetching googleauth 0.14.0
Installing googleauth 0.14.0
Fetching httpclient 2.8.3
Installing httpclient 2.8.3
Fetching mini_mime 1.0.2
Installing mini_mime 1.0.2
Fetching uber 0.1.0
Installing uber 0.1.0
Fetching representable 3.0.4
Installing representable 3.0.4
Fetching retriable 3.1.2
Installing retriable 3.1.2
Fetching rexml 3.2.4
Installing rexml 3.2.4
Using google-api-client 0.47.0 from source at `.`
Fetching google-id-token 1.4.2
Installing google-id-token 1.4.2
Fetching hashdiff 1.0.1
Installing hashdiff 1.0.1
Fetching mime-types-data 3.2020.0512
Installing mime-types-data 3.2020.0512
Fetching mime-types 3.3.1
Installing mime-types 3.3.1
Fetching multi_xml 0.6.0
Installing multi_xml 0.6.0
Fetching httparty 0.18.1
Installing httparty 0.18.1
Fetching rspec-support 3.9.4
Installing rspec-support 3.9.4
Fetching rspec-core 3.9.3
Installing rspec-core 3.9.3
Fetching rspec-expectations 3.9.3
Installing rspec-expectations 3.9.3
Fetching rspec-mocks 3.9.1
Installing rspec-mocks 3.9.1
Fetching rspec 3.9.0
Installing rspec 3.9.0
Fetching json_spec 1.1.5
Installing json_spec 1.1.5
Fetching launchy 2.5.0
Installing launchy 2.5.0
Fetching little-plugger 1.1.4
Installing little-plugger 1.1.4
Fetching logging 2.3.0
Installing logging 2.3.0
Fetching method_source 1.0.0
Installing method_source 1.0.0
Fetching opencensus 0.5.0
Installing opencensus 0.5.0
Fetching parallel 1.19.2
Installing parallel 1.19.2
Fetching parser 2.7.2.0
Installing parser 2.7.2.0
Fetching powerpack 0.1.2
Installing powerpack 0.1.2
Fetching pry 0.13.1
Installing pry 0.13.1
Fetching pry-byebug 3.9.0
Installing pry-byebug 3.9.0
Fetching yard 0.9.25
Installing yard 0.9.25
Fetching pry-doc 0.13.5
Installing pry-doc 0.13.5
Fetching rainbow 2.2.2
Installing rainbow 2.2.2 with native extensions
Fetching redcarpet 3.5.0
Installing redcarpet 3.5.0 with native extensions
Fetching redis 3.3.5
Installing redis 3.3.5
Fetching rmail 1.1.4
Installing rmail 1.1.4
Fetching ruby-progressbar 1.10.1
Installing ruby-progressbar 1.10.1
Fetching unicode-display_width 1.7.0
Installing unicode-display_width 1.7.0
Fetching rubocop 0.49.1
Installing rubocop 0.49.1
Fetching webmock 2.3.2
Installing webmock 2.3.2
Bundle complete! 31 Gemfile dependencies, 78 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
Post-install message from i18n:

HEADS UP! i18n 1.1 changed fallbacks to exclude default locale.
But that may break your application.

If you are upgrading your Rails application from an older version of Rails:

Please check your Rails app for 'config.i18n.fallbacks = true'.
If you're using I18n (>= 1.1.0) and Rails (< 5.2.2), this should be
'config.i18n.fallbacks = [I18n.default_locale]'.
If not, fallbacks will be broken in your app by I18n 1.1.x.

If you are starting a NEW Rails application, you can ignore this notice.

For more info see:
https://github.com/svenfuchs/i18n/releases/tag/v1.1.0

Post-install message from httparty:
When you HTTParty, you must party hard!
echo a | bundle exec bin/generate-api gen generated --api=safebrowsing.v4 --names-out=/workspace/api_names_out.yaml
Loading safebrowsing, version v4 from https://raw.githubusercontent.com/googleapis/discovery-artifact-manager/master/discoveries/safebrowsing.v4.json
W, [2020-10-28T10:12:39.448932 #239]  WARN -- : Found reserved property 'hash'
W, [2020-10-28T10:12:39.449001 #239]  WARN -- : Changed to 'hash_prop'
      create  google/apis/safebrowsing_v4.rb
      create  google/apis/safebrowsing_v4/service.rb
      create  google/apis/safebrowsing_v4/classes.rb
      create  google/apis/safebrowsing_v4/representations.rb
   identical  /workspace/api_names_out.yaml
2020-10-28 03:12:42,858 synthtool [DEBUG] > Wrote metadata to generated/google/apis/safebrowsing_v4/synth.metadata.
DEBUG:synthtool:Wrote metadata to generated/google/apis/safebrowsing_v4/synth.metadata.

```
</details>

Full log will be available here:
https://source.cloud.google.com/results/invocations/fc014795-ecad-4bb9-a08f-f26793ec33cc/targets

- [ ] To automatically regenerate this PR, check this box.
This commit is contained in:
Yoshi Automation Bot 2020-10-28 07:24:03 -07:00 committed by GitHub
parent ad7cdc79f8
commit 599f53bfa0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 1686 additions and 0 deletions

View File

@ -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

View File

@ -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<String>]
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<Google::Apis::SafebrowsingV4::ListUpdateRequest>]
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<Google::Apis::SafebrowsingV4::ListUpdateResponse>]
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<String>]
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<Google::Apis::SafebrowsingV4::ThreatMatch>]
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<Google::Apis::SafebrowsingV4::ThreatMatch>]
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<Google::Apis::SafebrowsingV4::ThreatListDescriptor>]
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<Google::Apis::SafebrowsingV4::ThreatEntrySet>]
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<Google::Apis::SafebrowsingV4::ThreatEntrySet>]
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<Fixnum>]
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<Google::Apis::SafebrowsingV4::MetadataEntry>]
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<Google::Apis::SafebrowsingV4::ThreatSource>]
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<String>]
attr_accessor :platform_types
# The threat entries to be checked.
# Corresponds to the JSON property `threatEntries`
# @return [Array<Google::Apis::SafebrowsingV4::ThreatEntry>]
attr_accessor :threat_entries
# The entry types to be checked.
# Corresponds to the JSON property `threatEntryTypes`
# @return [Array<String>]
attr_accessor :threat_entry_types
# The threat types to be checked.
# Corresponds to the JSON property `threatTypes`
# @return [Array<String>]
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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,11 @@
{
"sources": [
{
"git": {
"name": ".",
"remote": "https://github.com/googleapis/google-api-ruby-client.git",
"sha": "9840c481849200572321532ecc3b128bebbc1583"
}
}
]
}