# Copyright 2020 Google LLC # # 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 RecaptchaenterpriseV1 # Account Defender risk assessment. class GoogleCloudRecaptchaenterpriseV1AccountDefenderAssessment include Google::Apis::Core::Hashable # Labels for this request. # Corresponds to the JSON property `labels` # @return [Array] attr_accessor :labels def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @labels = args[:labels] if args.key?(:labels) end end # Settings specific to keys that can be used by Android apps. class GoogleCloudRecaptchaenterpriseV1AndroidKeySettings include Google::Apis::Core::Hashable # If set to true, allowed_package_names are not enforced. # Corresponds to the JSON property `allowAllPackageNames` # @return [Boolean] attr_accessor :allow_all_package_names alias_method :allow_all_package_names?, :allow_all_package_names # Android package names of apps allowed to use the key. Example: 'com. # companyname.appname' # Corresponds to the JSON property `allowedPackageNames` # @return [Array] attr_accessor :allowed_package_names def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @allow_all_package_names = args[:allow_all_package_names] if args.key?(:allow_all_package_names) @allowed_package_names = args[:allowed_package_names] if args.key?(:allowed_package_names) end end # The request message to annotate an Assessment. class GoogleCloudRecaptchaenterpriseV1AnnotateAssessmentRequest include Google::Apis::Core::Hashable # Optional. The annotation that will be assigned to the Event. This field can be # left empty to provide reasons that apply to an event without concluding # whether the event is legitimate or fraudulent. # Corresponds to the JSON property `annotation` # @return [String] attr_accessor :annotation # Optional. Optional unique stable hashed user identifier to apply to the # assessment. This is an alternative to setting the hashed_account_id in # CreateAssessment, for example when the account identifier is not yet known in # the initial request. It is recommended that the identifier is hashed using # hmac-sha256 with stable secret. # Corresponds to the JSON property `hashedAccountId` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :hashed_account_id # Optional. Optional reasons for the annotation that will be assigned to the # Event. # Corresponds to the JSON property `reasons` # @return [Array] attr_accessor :reasons def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @annotation = args[:annotation] if args.key?(:annotation) @hashed_account_id = args[:hashed_account_id] if args.key?(:hashed_account_id) @reasons = args[:reasons] if args.key?(:reasons) end end # Empty response for AnnotateAssessment. class GoogleCloudRecaptchaenterpriseV1AnnotateAssessmentResponse include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # A recaptcha assessment resource. class GoogleCloudRecaptchaenterpriseV1Assessment include Google::Apis::Core::Hashable # Account Defender risk assessment. # Corresponds to the JSON property `accountDefenderAssessment` # @return [Google::Apis::RecaptchaenterpriseV1::GoogleCloudRecaptchaenterpriseV1AccountDefenderAssessment] attr_accessor :account_defender_assessment # The event being assessed. # Corresponds to the JSON property `event` # @return [Google::Apis::RecaptchaenterpriseV1::GoogleCloudRecaptchaenterpriseV1Event] attr_accessor :event # Output only. The resource name for the Assessment in the format "projects/` # project`/assessments/`assessment`". # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Risk analysis result for an event. # Corresponds to the JSON property `riskAnalysis` # @return [Google::Apis::RecaptchaenterpriseV1::GoogleCloudRecaptchaenterpriseV1RiskAnalysis] attr_accessor :risk_analysis # Output only. Properties of the provided event token. # Corresponds to the JSON property `tokenProperties` # @return [Google::Apis::RecaptchaenterpriseV1::GoogleCloudRecaptchaenterpriseV1TokenProperties] attr_accessor :token_properties def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @account_defender_assessment = args[:account_defender_assessment] if args.key?(:account_defender_assessment) @event = args[:event] if args.key?(:event) @name = args[:name] if args.key?(:name) @risk_analysis = args[:risk_analysis] if args.key?(:risk_analysis) @token_properties = args[:token_properties] if args.key?(:token_properties) end end # Metrics related to challenges. class GoogleCloudRecaptchaenterpriseV1ChallengeMetrics include Google::Apis::Core::Hashable # Count of submitted challenge solutions that were incorrect or otherwise deemed # suspicious such that a subsequent challenge was triggered. # Corresponds to the JSON property `failedCount` # @return [Fixnum] attr_accessor :failed_count # Count of nocaptchas (successful verification without a challenge) issued. # Corresponds to the JSON property `nocaptchaCount` # @return [Fixnum] attr_accessor :nocaptcha_count # Count of reCAPTCHA checkboxes or badges rendered. This is mostly equivalent to # a count of pageloads for pages that include reCAPTCHA. # Corresponds to the JSON property `pageloadCount` # @return [Fixnum] attr_accessor :pageload_count # Count of nocaptchas (successful verification without a challenge) plus # submitted challenge solutions that were correct and resulted in verification. # Corresponds to the JSON property `passedCount` # @return [Fixnum] attr_accessor :passed_count def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @failed_count = args[:failed_count] if args.key?(:failed_count) @nocaptcha_count = args[:nocaptcha_count] if args.key?(:nocaptcha_count) @pageload_count = args[:pageload_count] if args.key?(:pageload_count) @passed_count = args[:passed_count] if args.key?(:passed_count) end end # class GoogleCloudRecaptchaenterpriseV1Event include Google::Apis::Core::Hashable # Optional. The expected action for this type of event. This should be the same # action provided at token generation time on client-side platforms already # integrated with recaptcha enterprise. # Corresponds to the JSON property `expectedAction` # @return [String] attr_accessor :expected_action # Optional. Optional unique stable hashed user identifier for the request. The # identifier should ideally be hashed using sha256 with stable secret. # Corresponds to the JSON property `hashedAccountId` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :hashed_account_id # Optional. The site key that was used to invoke reCAPTCHA on your site and # generate the token. # Corresponds to the JSON property `siteKey` # @return [String] attr_accessor :site_key # Optional. The user response token provided by the reCAPTCHA client-side # integration on your site. # Corresponds to the JSON property `token` # @return [String] attr_accessor :token # Optional. The user agent present in the request from the user's device related # to this event. # Corresponds to the JSON property `userAgent` # @return [String] attr_accessor :user_agent # Optional. The IP address in the request from the user's device related to this # event. # Corresponds to the JSON property `userIpAddress` # @return [String] attr_accessor :user_ip_address def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @expected_action = args[:expected_action] if args.key?(:expected_action) @hashed_account_id = args[:hashed_account_id] if args.key?(:hashed_account_id) @site_key = args[:site_key] if args.key?(:site_key) @token = args[:token] if args.key?(:token) @user_agent = args[:user_agent] if args.key?(:user_agent) @user_ip_address = args[:user_ip_address] if args.key?(:user_ip_address) end end # Settings specific to keys that can be used by iOS apps. class GoogleCloudRecaptchaenterpriseV1IosKeySettings include Google::Apis::Core::Hashable # If set to true, allowed_bundle_ids are not enforced. # Corresponds to the JSON property `allowAllBundleIds` # @return [Boolean] attr_accessor :allow_all_bundle_ids alias_method :allow_all_bundle_ids?, :allow_all_bundle_ids # iOS bundle ids of apps allowed to use the key. Example: 'com.companyname. # productname.appname' # Corresponds to the JSON property `allowedBundleIds` # @return [Array] attr_accessor :allowed_bundle_ids def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @allow_all_bundle_ids = args[:allow_all_bundle_ids] if args.key?(:allow_all_bundle_ids) @allowed_bundle_ids = args[:allowed_bundle_ids] if args.key?(:allowed_bundle_ids) end end # A key used to identify and configure applications (web and/or mobile) that use # reCAPTCHA Enterprise. class GoogleCloudRecaptchaenterpriseV1Key include Google::Apis::Core::Hashable # Settings specific to keys that can be used by Android apps. # Corresponds to the JSON property `androidSettings` # @return [Google::Apis::RecaptchaenterpriseV1::GoogleCloudRecaptchaenterpriseV1AndroidKeySettings] attr_accessor :android_settings # The timestamp corresponding to the creation of this Key. # Corresponds to the JSON property `createTime` # @return [String] attr_accessor :create_time # Human-readable display name of this key. Modifiable by user. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Settings specific to keys that can be used by iOS apps. # Corresponds to the JSON property `iosSettings` # @return [Google::Apis::RecaptchaenterpriseV1::GoogleCloudRecaptchaenterpriseV1IosKeySettings] attr_accessor :ios_settings # See Creating and managing labels. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # The resource name for the Key in the format "projects/`project`/keys/`key`". # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Options for user acceptance testing. # Corresponds to the JSON property `testingOptions` # @return [Google::Apis::RecaptchaenterpriseV1::GoogleCloudRecaptchaenterpriseV1TestingOptions] attr_accessor :testing_options # Settings specific to keys that can be used for WAF (Web Application Firewall). # Corresponds to the JSON property `wafSettings` # @return [Google::Apis::RecaptchaenterpriseV1::GoogleCloudRecaptchaenterpriseV1WafSettings] attr_accessor :waf_settings # Settings specific to keys that can be used by websites. # Corresponds to the JSON property `webSettings` # @return [Google::Apis::RecaptchaenterpriseV1::GoogleCloudRecaptchaenterpriseV1WebKeySettings] attr_accessor :web_settings def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @android_settings = args[:android_settings] if args.key?(:android_settings) @create_time = args[:create_time] if args.key?(:create_time) @display_name = args[:display_name] if args.key?(:display_name) @ios_settings = args[:ios_settings] if args.key?(:ios_settings) @labels = args[:labels] if args.key?(:labels) @name = args[:name] if args.key?(:name) @testing_options = args[:testing_options] if args.key?(:testing_options) @waf_settings = args[:waf_settings] if args.key?(:waf_settings) @web_settings = args[:web_settings] if args.key?(:web_settings) end end # Response to request to list keys in a project. class GoogleCloudRecaptchaenterpriseV1ListKeysResponse include Google::Apis::Core::Hashable # Key details. # Corresponds to the JSON property `keys` # @return [Array] attr_accessor :keys # Token to retrieve the next page of results. It is set to empty if no keys # remain in results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @keys = args[:keys] if args.key?(:keys) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # The response to a `ListRelatedAccountGroupMemberships` call. class GoogleCloudRecaptchaenterpriseV1ListRelatedAccountGroupMembershipsResponse include Google::Apis::Core::Hashable # A token, which can be sent as `page_token` to retrieve the next page. If this # field is omitted, there are no subsequent pages. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The memberships listed by the query. # Corresponds to the JSON property `relatedAccountGroupMemberships` # @return [Array] attr_accessor :related_account_group_memberships def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @related_account_group_memberships = args[:related_account_group_memberships] if args.key?(:related_account_group_memberships) end end # The response to a `ListRelatedAccountGroups` call. class GoogleCloudRecaptchaenterpriseV1ListRelatedAccountGroupsResponse include Google::Apis::Core::Hashable # A token, which can be sent as `page_token` to retrieve the next page. If this # field is omitted, there are no subsequent pages. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The groups of related accounts listed by the query. # Corresponds to the JSON property `relatedAccountGroups` # @return [Array] attr_accessor :related_account_groups def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @related_account_groups = args[:related_account_groups] if args.key?(:related_account_groups) end end # Metrics for a single Key. class GoogleCloudRecaptchaenterpriseV1Metrics include Google::Apis::Core::Hashable # Metrics will be continuous and in order by dates, and in the granularity of # day. Only challenge-based keys (CHECKBOX, INVISIBLE), will have challenge- # based data. # Corresponds to the JSON property `challengeMetrics` # @return [Array] attr_accessor :challenge_metrics # Output only. The name of the metrics, in the format "projects/`project`/keys/` # key`/metrics". # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Metrics will be continuous and in order by dates, and in the granularity of # day. All Key types should have score-based data. # Corresponds to the JSON property `scoreMetrics` # @return [Array] attr_accessor :score_metrics # Inclusive start time aligned to a day (UTC). # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @challenge_metrics = args[:challenge_metrics] if args.key?(:challenge_metrics) @name = args[:name] if args.key?(:name) @score_metrics = args[:score_metrics] if args.key?(:score_metrics) @start_time = args[:start_time] if args.key?(:start_time) end end # The migrate key request message. class GoogleCloudRecaptchaenterpriseV1MigrateKeyRequest include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # A group of related accounts. class GoogleCloudRecaptchaenterpriseV1RelatedAccountGroup include Google::Apis::Core::Hashable # Required. The resource name for the related account group in the format ` # projects/`project`/relatedaccountgroups/`related_account_group``. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) end end # A membership in a group of related accounts. class GoogleCloudRecaptchaenterpriseV1RelatedAccountGroupMembership include Google::Apis::Core::Hashable # The unique stable hashed user identifier of the member. The identifier # corresponds to a `hashed_account_id` provided in a previous CreateAssessment # or AnnotateAssessment call. # Corresponds to the JSON property `hashedAccountId` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :hashed_account_id # Required. The resource name for this membership in the format `projects/` # project`/relatedaccountgroups/`relatedaccountgroup`/memberships/`membership``. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @hashed_account_id = args[:hashed_account_id] if args.key?(:hashed_account_id) @name = args[:name] if args.key?(:name) end end # Risk analysis result for an event. class GoogleCloudRecaptchaenterpriseV1RiskAnalysis include Google::Apis::Core::Hashable # Reasons contributing to the risk analysis verdict. # Corresponds to the JSON property `reasons` # @return [Array] attr_accessor :reasons # Legitimate event score from 0.0 to 1.0. (1.0 means very likely legitimate # traffic while 0.0 means very likely non-legitimate traffic). # Corresponds to the JSON property `score` # @return [Float] attr_accessor :score def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @reasons = args[:reasons] if args.key?(:reasons) @score = args[:score] if args.key?(:score) end end # Score distribution. class GoogleCloudRecaptchaenterpriseV1ScoreDistribution include Google::Apis::Core::Hashable # Map key is score value multiplied by 100. The scores are discrete values # between [0, 1]. The maximum number of buckets is on order of a few dozen, but # typically much lower (ie. 10). # Corresponds to the JSON property `scoreBuckets` # @return [Hash] attr_accessor :score_buckets def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @score_buckets = args[:score_buckets] if args.key?(:score_buckets) end end # Metrics related to scoring. class GoogleCloudRecaptchaenterpriseV1ScoreMetrics include Google::Apis::Core::Hashable # Action-based metrics. The map key is the action name which specified by the # site owners at time of the "execute" client-side call. Populated only for # SCORE keys. # Corresponds to the JSON property `actionMetrics` # @return [Hash] attr_accessor :action_metrics # Score distribution. # Corresponds to the JSON property `overallMetrics` # @return [Google::Apis::RecaptchaenterpriseV1::GoogleCloudRecaptchaenterpriseV1ScoreDistribution] attr_accessor :overall_metrics def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @action_metrics = args[:action_metrics] if args.key?(:action_metrics) @overall_metrics = args[:overall_metrics] if args.key?(:overall_metrics) end end # The request message to search related account group memberships. class GoogleCloudRecaptchaenterpriseV1SearchRelatedAccountGroupMembershipsRequest include Google::Apis::Core::Hashable # Optional. The unique stable hashed user identifier we should search # connections to. The identifier should correspond to a `hashed_account_id` # provided in a previous CreateAssessment or AnnotateAssessment call. # Corresponds to the JSON property `hashedAccountId` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :hashed_account_id # Optional. The maximum number of groups to return. The service may return fewer # than this value. If unspecified, at most 50 groups will be returned. The # maximum value is 1000; values above 1000 will be coerced to 1000. # Corresponds to the JSON property `pageSize` # @return [Fixnum] attr_accessor :page_size # Optional. A page token, received from a previous ` # SearchRelatedAccountGroupMemberships` call. Provide this to retrieve the # subsequent page. When paginating, all other parameters provided to ` # SearchRelatedAccountGroupMemberships` must match the call that provided the # page token. # Corresponds to the JSON property `pageToken` # @return [String] attr_accessor :page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @hashed_account_id = args[:hashed_account_id] if args.key?(:hashed_account_id) @page_size = args[:page_size] if args.key?(:page_size) @page_token = args[:page_token] if args.key?(:page_token) end end # The response to a `SearchRelatedAccountGroupMemberships` call. class GoogleCloudRecaptchaenterpriseV1SearchRelatedAccountGroupMembershipsResponse include Google::Apis::Core::Hashable # A token, which can be sent as `page_token` to retrieve the next page. If this # field is omitted, there are no subsequent pages. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The queried memberships. # Corresponds to the JSON property `relatedAccountGroupMemberships` # @return [Array] attr_accessor :related_account_group_memberships def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @related_account_group_memberships = args[:related_account_group_memberships] if args.key?(:related_account_group_memberships) end end # Options for user acceptance testing. class GoogleCloudRecaptchaenterpriseV1TestingOptions include Google::Apis::Core::Hashable # For challenge-based keys only (CHECKBOX, INVISIBLE), all challenge requests # for this site will return nocaptcha if NOCAPTCHA, or an unsolvable challenge # if CHALLENGE. # Corresponds to the JSON property `testingChallenge` # @return [String] attr_accessor :testing_challenge # All assessments for this Key will return this score. Must be between 0 (likely # not legitimate) and 1 (likely legitimate) inclusive. # Corresponds to the JSON property `testingScore` # @return [Float] attr_accessor :testing_score def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @testing_challenge = args[:testing_challenge] if args.key?(:testing_challenge) @testing_score = args[:testing_score] if args.key?(:testing_score) end end # class GoogleCloudRecaptchaenterpriseV1TokenProperties include Google::Apis::Core::Hashable # Action name provided at token generation. # Corresponds to the JSON property `action` # @return [String] attr_accessor :action # The timestamp corresponding to the generation of the token. # Corresponds to the JSON property `createTime` # @return [String] attr_accessor :create_time # The hostname of the page on which the token was generated. # Corresponds to the JSON property `hostname` # @return [String] attr_accessor :hostname # Reason associated with the response when valid = false. # Corresponds to the JSON property `invalidReason` # @return [String] attr_accessor :invalid_reason # Whether the provided user response token is valid. When valid = false, the # reason could be specified in invalid_reason or it could also be due to a user # failing to solve a challenge or a sitekey mismatch (i.e the sitekey used to # generate the token was different than the one specified in the assessment). # Corresponds to the JSON property `valid` # @return [Boolean] attr_accessor :valid alias_method :valid?, :valid def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @action = args[:action] if args.key?(:action) @create_time = args[:create_time] if args.key?(:create_time) @hostname = args[:hostname] if args.key?(:hostname) @invalid_reason = args[:invalid_reason] if args.key?(:invalid_reason) @valid = args[:valid] if args.key?(:valid) end end # Settings specific to keys that can be used for WAF (Web Application Firewall). class GoogleCloudRecaptchaenterpriseV1WafSettings include Google::Apis::Core::Hashable # Required. The WAF feature for which this key is enabled. # Corresponds to the JSON property `wafFeature` # @return [String] attr_accessor :waf_feature # Required. The WAF service that uses this key. # Corresponds to the JSON property `wafService` # @return [String] attr_accessor :waf_service def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @waf_feature = args[:waf_feature] if args.key?(:waf_feature) @waf_service = args[:waf_service] if args.key?(:waf_service) end end # Settings specific to keys that can be used by websites. class GoogleCloudRecaptchaenterpriseV1WebKeySettings include Google::Apis::Core::Hashable # If set to true, it means allowed_domains will not be enforced. # Corresponds to the JSON property `allowAllDomains` # @return [Boolean] attr_accessor :allow_all_domains alias_method :allow_all_domains?, :allow_all_domains # If set to true, the key can be used on AMP (Accelerated Mobile Pages) websites. # This is supported only for the SCORE integration type. # Corresponds to the JSON property `allowAmpTraffic` # @return [Boolean] attr_accessor :allow_amp_traffic alias_method :allow_amp_traffic?, :allow_amp_traffic # Domains or subdomains of websites allowed to use the key. All subdomains of an # allowed domain are automatically allowed. A valid domain requires a host and # must not include any path, port, query or fragment. Examples: 'example.com' or # 'subdomain.example.com' # Corresponds to the JSON property `allowedDomains` # @return [Array] attr_accessor :allowed_domains # Settings for the frequency and difficulty at which this key triggers captcha # challenges. This should only be specified for IntegrationTypes CHECKBOX and # INVISIBLE. # Corresponds to the JSON property `challengeSecurityPreference` # @return [String] attr_accessor :challenge_security_preference # Required. Describes how this key is integrated with the website. # Corresponds to the JSON property `integrationType` # @return [String] attr_accessor :integration_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @allow_all_domains = args[:allow_all_domains] if args.key?(:allow_all_domains) @allow_amp_traffic = args[:allow_amp_traffic] if args.key?(:allow_amp_traffic) @allowed_domains = args[:allowed_domains] if args.key?(:allowed_domains) @challenge_security_preference = args[:challenge_security_preference] if args.key?(:challenge_security_preference) @integration_type = args[:integration_type] if args.key?(:integration_type) 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); ` class GoogleProtobufEmpty include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end end end end