From d78e388fa9ca631515b02c370347d16fbd3700b6 Mon Sep 17 00:00:00 2001 From: Google APIs Date: Sat, 6 Oct 2018 00:36:23 +0000 Subject: [PATCH] Autogenerated update (2018-10-06) Delete: - servicenetworking_v1 Update: - dataflow_v1b3 - jobs_v3p1beta1 - serviceconsumermanagement_v1 - servicenetworking_v1beta - serviceusage_v1 - serviceusage_v1beta1 - spanner_v1 --- api_names_out.yaml | 9 + generated/google/apis/dataflow_v1b3.rb | 2 +- .../google/apis/dataflow_v1b3/classes.rb | 7 + .../apis/dataflow_v1b3/representations.rb | 1 + generated/google/apis/jobs_v3p1beta1.rb | 2 +- .../google/apis/jobs_v3p1beta1/classes.rb | 65 +- .../apis/jobs_v3p1beta1/representations.rb | 2 + .../apis/serviceconsumermanagement_v1.rb | 2 +- .../serviceconsumermanagement_v1/classes.rb | 2 +- generated/google/apis/servicenetworking_v1.rb | 38 - .../apis/servicenetworking_v1/classes.rb | 3392 ----------------- .../servicenetworking_v1/representations.rb | 997 ----- .../apis/servicenetworking_v1/service.rb | 214 -- .../google/apis/servicenetworking_v1beta.rb | 8 +- .../apis/servicenetworking_v1beta/classes.rb | 28 +- .../representations.rb | 14 - .../apis/servicenetworking_v1beta/service.rb | 6 +- generated/google/apis/serviceusage_v1.rb | 2 +- .../google/apis/serviceusage_v1/classes.rb | 2 +- generated/google/apis/serviceusage_v1beta1.rb | 2 +- .../apis/serviceusage_v1beta1/classes.rb | 2 +- generated/google/apis/spanner_v1.rb | 2 +- generated/google/apis/spanner_v1/classes.rb | 338 +- .../google/apis/spanner_v1/representations.rb | 17 + 24 files changed, 406 insertions(+), 4748 deletions(-) delete mode 100644 generated/google/apis/servicenetworking_v1.rb delete mode 100644 generated/google/apis/servicenetworking_v1/classes.rb delete mode 100644 generated/google/apis/servicenetworking_v1/representations.rb delete mode 100644 generated/google/apis/servicenetworking_v1/service.rb diff --git a/api_names_out.yaml b/api_names_out.yaml index 35345f530..abafe69ab 100644 --- a/api_names_out.yaml +++ b/api_names_out.yaml @@ -39302,6 +39302,7 @@ "/dataflow:v1b3/LogBucket/count": count "/dataflow:v1b3/LogBucket/log": log "/dataflow:v1b3/MapTask": map_task +"/dataflow:v1b3/MapTask/counterPrefix": counter_prefix "/dataflow:v1b3/MapTask/instructions": instructions "/dataflow:v1b3/MapTask/instructions/instruction": instruction "/dataflow:v1b3/MapTask/stageName": stage_name @@ -68476,6 +68477,8 @@ "/jobs:v3p1beta1/JobQuery/disableSpellCheck": disable_spell_check "/jobs:v3p1beta1/JobQuery/employmentTypes": employment_types "/jobs:v3p1beta1/JobQuery/employmentTypes/employment_type": employment_type +"/jobs:v3p1beta1/JobQuery/excludedJobs": excluded_jobs +"/jobs:v3p1beta1/JobQuery/excludedJobs/excluded_job": excluded_job "/jobs:v3p1beta1/JobQuery/jobCategories": job_categories "/jobs:v3p1beta1/JobQuery/jobCategories/job_category": job_category "/jobs:v3p1beta1/JobQuery/languageCodes": language_codes @@ -68554,6 +68557,7 @@ "/jobs:v3p1beta1/SearchJobsRequest": search_jobs_request "/jobs:v3p1beta1/SearchJobsRequest/customRankingInfo": custom_ranking_info "/jobs:v3p1beta1/SearchJobsRequest/disableKeywordMatch": disable_keyword_match +"/jobs:v3p1beta1/SearchJobsRequest/diversificationLevel": diversification_level "/jobs:v3p1beta1/SearchJobsRequest/enableBroadening": enable_broadening "/jobs:v3p1beta1/SearchJobsRequest/histogramFacets": histogram_facets "/jobs:v3p1beta1/SearchJobsRequest/histogramQueries": histogram_queries @@ -82288,6 +82292,7 @@ "/spanner:v1/ExecuteSqlRequest/partitionToken": partition_token "/spanner:v1/ExecuteSqlRequest/queryMode": query_mode "/spanner:v1/ExecuteSqlRequest/resumeToken": resume_token +"/spanner:v1/ExecuteSqlRequest/seqno": seqno "/spanner:v1/ExecuteSqlRequest/sql": sql "/spanner:v1/ExecuteSqlRequest/transaction": transaction "/spanner:v1/Expr": expr @@ -82399,6 +82404,7 @@ "/spanner:v1/PartitionResponse/partitions": partitions "/spanner:v1/PartitionResponse/partitions/partition": partition "/spanner:v1/PartitionResponse/transaction": transaction +"/spanner:v1/PartitionedDml": partitioned_dml "/spanner:v1/PlanNode": plan_node "/spanner:v1/PlanNode/childLinks": child_links "/spanner:v1/PlanNode/childLinks/child_link": child_link @@ -82454,6 +82460,8 @@ "/spanner:v1/ResultSetStats/queryPlan": query_plan "/spanner:v1/ResultSetStats/queryStats": query_stats "/spanner:v1/ResultSetStats/queryStats/query_stat": query_stat +"/spanner:v1/ResultSetStats/rowCountExact": row_count_exact +"/spanner:v1/ResultSetStats/rowCountLowerBound": row_count_lower_bound "/spanner:v1/RollbackRequest": rollback_request "/spanner:v1/RollbackRequest/transactionId": transaction_id "/spanner:v1/Rule": rule @@ -82501,6 +82509,7 @@ "/spanner:v1/Transaction/id": id "/spanner:v1/Transaction/readTimestamp": read_timestamp "/spanner:v1/TransactionOptions": transaction_options +"/spanner:v1/TransactionOptions/partitionedDml": partitioned_dml "/spanner:v1/TransactionOptions/readOnly": read_only "/spanner:v1/TransactionOptions/readWrite": read_write "/spanner:v1/TransactionSelector": transaction_selector diff --git a/generated/google/apis/dataflow_v1b3.rb b/generated/google/apis/dataflow_v1b3.rb index d625657eb..843d563e1 100644 --- a/generated/google/apis/dataflow_v1b3.rb +++ b/generated/google/apis/dataflow_v1b3.rb @@ -25,7 +25,7 @@ module Google # @see https://cloud.google.com/dataflow module DataflowV1b3 VERSION = 'V1b3' - REVISION = '20180828' + REVISION = '20180926' # View and manage your data across Google Cloud Platform services AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' diff --git a/generated/google/apis/dataflow_v1b3/classes.rb b/generated/google/apis/dataflow_v1b3/classes.rb index fdb3dec8a..255387037 100644 --- a/generated/google/apis/dataflow_v1b3/classes.rb +++ b/generated/google/apis/dataflow_v1b3/classes.rb @@ -2312,6 +2312,12 @@ module Google class MapTask include Google::Apis::Core::Hashable + # Counter prefix that can be used to prefix counters. Not currently used in + # Dataflow. + # Corresponds to the JSON property `counterPrefix` + # @return [String] + attr_accessor :counter_prefix + # The instructions in the MapTask. # Corresponds to the JSON property `instructions` # @return [Array] @@ -2335,6 +2341,7 @@ module Google # Update properties of this object def update!(**args) + @counter_prefix = args[:counter_prefix] if args.key?(:counter_prefix) @instructions = args[:instructions] if args.key?(:instructions) @stage_name = args[:stage_name] if args.key?(:stage_name) @system_name = args[:system_name] if args.key?(:system_name) diff --git a/generated/google/apis/dataflow_v1b3/representations.rb b/generated/google/apis/dataflow_v1b3/representations.rb index f9b573032..fa4de7b8f 100644 --- a/generated/google/apis/dataflow_v1b3/representations.rb +++ b/generated/google/apis/dataflow_v1b3/representations.rb @@ -1453,6 +1453,7 @@ module Google class MapTask # @private class Representation < Google::Apis::Core::JsonRepresentation + property :counter_prefix, as: 'counterPrefix' collection :instructions, as: 'instructions', class: Google::Apis::DataflowV1b3::ParallelInstruction, decorator: Google::Apis::DataflowV1b3::ParallelInstruction::Representation property :stage_name, as: 'stageName' diff --git a/generated/google/apis/jobs_v3p1beta1.rb b/generated/google/apis/jobs_v3p1beta1.rb index 214d51d2d..560607da6 100644 --- a/generated/google/apis/jobs_v3p1beta1.rb +++ b/generated/google/apis/jobs_v3p1beta1.rb @@ -26,7 +26,7 @@ module Google # @see https://cloud.google.com/talent-solution/job-search/docs/ module JobsV3p1beta1 VERSION = 'V3p1beta1' - REVISION = '20180917' + REVISION = '20180927' # View and manage your data across Google Cloud Platform services AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' diff --git a/generated/google/apis/jobs_v3p1beta1/classes.rb b/generated/google/apis/jobs_v3p1beta1/classes.rb index d7e801200..c91d804e7 100644 --- a/generated/google/apis/jobs_v3p1beta1/classes.rb +++ b/generated/google/apis/jobs_v3p1beta1/classes.rb @@ -951,7 +951,7 @@ module Google # Controls over how important the score of # CustomRankingInfo.ranking_expression gets applied to job's final # ranking position. - # An error will be thrown if not specified. + # An error is thrown if not specified. # Corresponds to the JSON property `importanceLevel` # @return [String] attr_accessor :importance_level @@ -1411,7 +1411,9 @@ module Google # For more information, see # [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47)`: # class="external" target="_blank" `. - # The default value is `en-US`. + # If this field is unspecified and Job.description is present, detected + # language code based on Job.description is assigned, otherwise + # defaults to 'en_US'. # Corresponds to the JSON property `languageCode` # @return [String] attr_accessor :language_code @@ -1696,20 +1698,21 @@ module Google # Optional. # This filter specifies a structured syntax to match against the # Job.custom_attributes marked as `filterable`. - # The syntax for this expression is a subset of Google SQL syntax. - # Supported operators are: =, !=, <, <=, >, >= where the left of the operator - # is a custom field key and the right of the operator is a number or string - # (surrounded by quotes) value. - # Supported functions are LOWER() to - # perform case insensitive match and EMPTY() to filter on the + # The syntax for this expression is a subset of SQL syntax. + # Supported operators are: `=`, `!=`, `<`, `<=`, `>`, and `>=` where the + # left of the operator is a custom field key and the right of the operator + # is a number or a quoted string. You must escape backslash (\\) and + # quote (\") characters. + # Supported functions are `LOWER([field_name])` to + # perform a case insensitive match and `EMPTY([field_name])` to filter on the # existence of a key. # Boolean expressions (AND/OR/NOT) are supported up to 3 levels of # nesting (for example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 50 - # comparisons/functions are allowed in the expression. The expression - # must be < 2000 characters in length. + # comparisons or functions are allowed in the expression. The expression + # must be < 3000 characters in length. # Sample Query: - # (LOWER(driving_license)="class a" OR EMPTY(driving_license)) AND - # driving_years > 10 + # `(LOWER(driving_license)="class \"a\"" OR EMPTY(driving_license)) AND + # driving_years > 10` # Corresponds to the JSON property `customAttributeFilter` # @return [String] attr_accessor :custom_attribute_filter @@ -1735,6 +1738,13 @@ module Google # @return [Array] attr_accessor :employment_types + # Optional. + # This filter specifies a list of job names to be excluded during search. + # At most 200 excluded job names are allowed. + # Corresponds to the JSON property `excludedJobs` + # @return [Array] + attr_accessor :excluded_jobs + # Optional. # The category filter specifies the categories of jobs to search against. # See Category for more information. @@ -1798,6 +1808,7 @@ module Google @custom_attribute_filter = args[:custom_attribute_filter] if args.key?(:custom_attribute_filter) @disable_spell_check = args[:disable_spell_check] if args.key?(:disable_spell_check) @employment_types = args[:employment_types] if args.key?(:employment_types) + @excluded_jobs = args[:excluded_jobs] if args.key?(:excluded_jobs) @job_categories = args[:job_categories] if args.key?(:job_categories) @language_codes = args[:language_codes] if args.key?(:language_codes) @location_filters = args[:location_filters] if args.key?(:location_filters) @@ -2505,6 +2516,19 @@ module Google attr_accessor :disable_keyword_match alias_method :disable_keyword_match?, :disable_keyword_match + # Optional. + # Controls whether highly similar jobs are returned next to each other in + # the search results. Jobs are determined to be highly similar based on + # their titles, job categories, and locations. Highly similar results will + # be clustered so that only one representative job of the cluster will be + # displayed to the job seeker higher up in the results, with the other jobs + # being displayed lower down in the results. + # Defaults to DiversificationLevel.SIMPLE if no value + # is specified. + # Corresponds to the JSON property `diversificationLevel` + # @return [String] + attr_accessor :diversification_level + # Optional. # Controls whether to broaden the search when it produces sparse results. # Broadened queries append results to the end of the matching results @@ -2559,27 +2583,27 @@ module Google # * "relevance desc": By relevance descending, as determined by the API # algorithms. Relevance thresholding of query results is only available # with this ordering. - # * "posting_publish_time desc": By Job.posting_publish_time descending. - # * "posting_update_time desc": By Job.posting_update_time descending. + # * "posting`_`publish`_`time desc": By Job.posting_publish_time descending. + # * "posting`_`update`_`time desc": By Job.posting_update_time descending. # * "title": By Job.title ascending. # * "title desc": By Job.title descending. - # * "annualized_base_compensation": By job's + # * "annualized`_`base`_`compensation": By job's # CompensationInfo.annualized_base_compensation_range ascending. Jobs # whose annualized base compensation is unspecified are put at the end of # search results. - # * "annualized_base_compensation desc": By job's + # * "annualized`_`base`_`compensation desc": By job's # CompensationInfo.annualized_base_compensation_range descending. Jobs # whose annualized base compensation is unspecified are put at the end of # search results. - # * "annualized_total_compensation": By job's + # * "annualized`_`total`_`compensation": By job's # CompensationInfo.annualized_total_compensation_range ascending. Jobs # whose annualized base compensation is unspecified are put at the end of # search results. - # * "annualized_total_compensation desc": By job's + # * "annualized`_`total`_`compensation desc": By job's # CompensationInfo.annualized_total_compensation_range descending. Jobs # whose annualized base compensation is unspecified are put at the end of # search results. - # * "custom_ranking desc": By the relevance score adjusted to the + # * "custom`_`ranking desc": By the relevance score adjusted to the # SearchJobsRequest.custom_ranking_info.ranking_expression with weight # factor assigned by # SearchJobsRequest.custom_ranking_info.importance_level in descending @@ -2640,6 +2664,7 @@ module Google def update!(**args) @custom_ranking_info = args[:custom_ranking_info] if args.key?(:custom_ranking_info) @disable_keyword_match = args[:disable_keyword_match] if args.key?(:disable_keyword_match) + @diversification_level = args[:diversification_level] if args.key?(:diversification_level) @enable_broadening = args[:enable_broadening] if args.key?(:enable_broadening) @histogram_facets = args[:histogram_facets] if args.key?(:histogram_facets) @histogram_queries = args[:histogram_queries] if args.key?(:histogram_queries) @@ -2723,7 +2748,7 @@ module Google # The precise result count, which is available only if the client set # enable_precise_result_size to `true` or if the response - # is the last page of results. Otherwise, the value will be `-1`. + # is the last page of results. Otherwise, the value is `-1`. # Corresponds to the JSON property `totalSize` # @return [Fixnum] attr_accessor :total_size diff --git a/generated/google/apis/jobs_v3p1beta1/representations.rb b/generated/google/apis/jobs_v3p1beta1/representations.rb index 997c8fd0a..e942a1f9d 100644 --- a/generated/google/apis/jobs_v3p1beta1/representations.rb +++ b/generated/google/apis/jobs_v3p1beta1/representations.rb @@ -724,6 +724,7 @@ module Google property :custom_attribute_filter, as: 'customAttributeFilter' property :disable_spell_check, as: 'disableSpellCheck' collection :employment_types, as: 'employmentTypes' + collection :excluded_jobs, as: 'excludedJobs' collection :job_categories, as: 'jobCategories' collection :language_codes, as: 'languageCodes' collection :location_filters, as: 'locationFilters', class: Google::Apis::JobsV3p1beta1::LocationFilter, decorator: Google::Apis::JobsV3p1beta1::LocationFilter::Representation @@ -877,6 +878,7 @@ module Google property :custom_ranking_info, as: 'customRankingInfo', class: Google::Apis::JobsV3p1beta1::CustomRankingInfo, decorator: Google::Apis::JobsV3p1beta1::CustomRankingInfo::Representation property :disable_keyword_match, as: 'disableKeywordMatch' + property :diversification_level, as: 'diversificationLevel' property :enable_broadening, as: 'enableBroadening' property :histogram_facets, as: 'histogramFacets', class: Google::Apis::JobsV3p1beta1::HistogramFacets, decorator: Google::Apis::JobsV3p1beta1::HistogramFacets::Representation diff --git a/generated/google/apis/serviceconsumermanagement_v1.rb b/generated/google/apis/serviceconsumermanagement_v1.rb index bf05de58f..7a4add576 100644 --- a/generated/google/apis/serviceconsumermanagement_v1.rb +++ b/generated/google/apis/serviceconsumermanagement_v1.rb @@ -26,7 +26,7 @@ module Google # @see https://cloud.google.com/service-consumer-management/docs/overview module ServiceconsumermanagementV1 VERSION = 'V1' - REVISION = '20180919' + REVISION = '20181004' # View and manage your data across Google Cloud Platform services AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' diff --git a/generated/google/apis/serviceconsumermanagement_v1/classes.rb b/generated/google/apis/serviceconsumermanagement_v1/classes.rb index 3eca107a9..00f6e596f 100644 --- a/generated/google/apis/serviceconsumermanagement_v1/classes.rb +++ b/generated/google/apis/serviceconsumermanagement_v1/classes.rb @@ -1222,7 +1222,7 @@ module Google # service Messaging ` # rpc GetMessage(GetMessageRequest) returns (Message) ` # option (google.api.http) = ` - # get: "/v1/`name=messages/*"`" + # get: "/v1/`name=messages/*`" # `; # ` # ` diff --git a/generated/google/apis/servicenetworking_v1.rb b/generated/google/apis/servicenetworking_v1.rb deleted file mode 100644 index 0e6c8e268..000000000 --- a/generated/google/apis/servicenetworking_v1.rb +++ /dev/null @@ -1,38 +0,0 @@ -# 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/servicenetworking_v1/service.rb' -require 'google/apis/servicenetworking_v1/classes.rb' -require 'google/apis/servicenetworking_v1/representations.rb' - -module Google - module Apis - # Service Networking API - # - # The Service Networking API provides automatic management of network - # configurations necessary for certain services. - # - # @see https://cloud.google.com/service-infrastructure/docs/service-networking/reference/rest/ - module ServicenetworkingV1 - VERSION = 'V1' - REVISION = '20181001' - - # View and manage your data across Google Cloud Platform services - AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' - - # Manage your Google API service configuration - AUTH_SERVICE_MANAGEMENT = 'https://www.googleapis.com/auth/service.management' - end - end -end diff --git a/generated/google/apis/servicenetworking_v1/classes.rb b/generated/google/apis/servicenetworking_v1/classes.rb deleted file mode 100644 index 2a164ffbe..000000000 --- a/generated/google/apis/servicenetworking_v1/classes.rb +++ /dev/null @@ -1,3392 +0,0 @@ -# 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 ServicenetworkingV1 - - # Message returning the name of the created service subnetwork. - class AddSubnetworkResponse - include Google::Apis::Core::Hashable - - # Subnetwork CIDR range in "10.x.x.x/y" format. - # Corresponds to the JSON property `ipCidrRange` - # @return [String] - attr_accessor :ip_cidr_range - - # Subnetwork name. - # See https://cloud.google.com/compute/docs/vpc/ - # 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) - @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range) - @name = args[:name] if args.key?(:name) - end - end - - # Api is a light-weight descriptor for an API Interface. - # Interfaces are also described as "protocol buffer services" in some contexts, - # such as by the "service" keyword in a .proto file, but they are different - # from API Services, which represent a concrete implementation of an interface - # as opposed to simply a description of methods and bindings. They are also - # sometimes simply referred to as "APIs" in other contexts, such as the name of - # this message itself. See https://cloud.google.com/apis/design/glossary for - # detailed terminology. - class Api - include Google::Apis::Core::Hashable - - # The methods of this interface, in unspecified order. - # Corresponds to the JSON property `methods` - # @return [Array] - attr_accessor :methods_prop - - # Included interfaces. See Mixin. - # Corresponds to the JSON property `mixins` - # @return [Array] - attr_accessor :mixins - - # The fully qualified name of this interface, including package name - # followed by the interface's simple name. - # Corresponds to the JSON property `name` - # @return [String] - attr_accessor :name - - # Any metadata attached to the interface. - # Corresponds to the JSON property `options` - # @return [Array] - attr_accessor :options - - # `SourceContext` represents information about the source of a - # protobuf element, like the file in which it is defined. - # Corresponds to the JSON property `sourceContext` - # @return [Google::Apis::ServicenetworkingV1::SourceContext] - attr_accessor :source_context - - # The source syntax of the service. - # Corresponds to the JSON property `syntax` - # @return [String] - attr_accessor :syntax - - # A version string for this interface. If specified, must have the form - # `major-version.minor-version`, as in `1.10`. If the minor version is - # omitted, it defaults to zero. If the entire version field is empty, the - # major version is derived from the package name, as outlined below. If the - # field is not empty, the version in the package name will be verified to be - # consistent with what is provided here. - # The versioning schema uses [semantic - # versioning](http://semver.org) where the major version number - # indicates a breaking change and the minor version an additive, - # non-breaking change. Both version numbers are signals to users - # what to expect from different versions, and should be carefully - # chosen based on the product plan. - # The major version is also reflected in the package name of the - # interface, which must end in `v`, as in - # `google.feature.v1`. For major versions 0 and 1, the suffix can - # be omitted. Zero major versions must only be used for - # experimental, non-GA interfaces. - # Corresponds to the JSON property `version` - # @return [String] - attr_accessor :version - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @methods_prop = args[:methods_prop] if args.key?(:methods_prop) - @mixins = args[:mixins] if args.key?(:mixins) - @name = args[:name] if args.key?(:name) - @options = args[:options] if args.key?(:options) - @source_context = args[:source_context] if args.key?(:source_context) - @syntax = args[:syntax] if args.key?(:syntax) - @version = args[:version] if args.key?(:version) - end - end - - # Configuration for an anthentication provider, including support for - # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web- - # token-32). - class AuthProvider - include Google::Apis::Core::Hashable - - # The list of JWT - # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32# - # section-4.1.3). - # that are allowed to access. A JWT containing any of these audiences will - # be accepted. When this setting is absent, only JWTs with audience - # "https://Service_name/API_name" - # will be accepted. For example, if no audiences are in the setting, - # LibraryService API will only accept JWTs with the following audience - # "https://library-example.googleapis.com/google.example.library.v1. - # LibraryService". - # Example: - # audiences: bookstore_android.apps.googleusercontent.com, - # bookstore_web.apps.googleusercontent.com - # Corresponds to the JSON property `audiences` - # @return [String] - attr_accessor :audiences - - # Redirect URL if JWT token is required but no present or is expired. - # Implement authorizationUrl of securityDefinitions in OpenAPI spec. - # Corresponds to the JSON property `authorizationUrl` - # @return [String] - attr_accessor :authorization_url - - # The unique identifier of the auth provider. It will be referred to by - # `AuthRequirement.provider_id`. - # Example: "bookstore_auth". - # Corresponds to the JSON property `id` - # @return [String] - attr_accessor :id - - # Identifies the principal that issued the JWT. See - # https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 - # Usually a URL or an email address. - # Example: https://securetoken.google.com - # Example: 1234567-compute@developer.gserviceaccount.com - # Corresponds to the JSON property `issuer` - # @return [String] - attr_accessor :issuer - - # URL of the provider's public key set to validate signature of the JWT. See - # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html# - # ProviderMetadata). - # Optional if the key set document: - # - can be retrieved from - # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0. - # html - # of the issuer. - # - can be inferred from the email domain of the issuer (e.g. a Google service - # account). - # Example: https://www.googleapis.com/oauth2/v1/certs - # Corresponds to the JSON property `jwksUri` - # @return [String] - attr_accessor :jwks_uri - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @audiences = args[:audiences] if args.key?(:audiences) - @authorization_url = args[:authorization_url] if args.key?(:authorization_url) - @id = args[:id] if args.key?(:id) - @issuer = args[:issuer] if args.key?(:issuer) - @jwks_uri = args[:jwks_uri] if args.key?(:jwks_uri) - end - end - - # User-defined authentication requirements, including support for - # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web- - # token-32). - class AuthRequirement - include Google::Apis::Core::Hashable - - # NOTE: This will be deprecated soon, once AuthProvider.audiences is - # implemented and accepted in all the runtime components. - # The list of JWT - # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32# - # section-4.1.3). - # that are allowed to access. A JWT containing any of these audiences will - # be accepted. When this setting is absent, only JWTs with audience - # "https://Service_name/API_name" - # will be accepted. For example, if no audiences are in the setting, - # LibraryService API will only accept JWTs with the following audience - # "https://library-example.googleapis.com/google.example.library.v1. - # LibraryService". - # Example: - # audiences: bookstore_android.apps.googleusercontent.com, - # bookstore_web.apps.googleusercontent.com - # Corresponds to the JSON property `audiences` - # @return [String] - attr_accessor :audiences - - # id from authentication provider. - # Example: - # provider_id: bookstore_auth - # Corresponds to the JSON property `providerId` - # @return [String] - attr_accessor :provider_id - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @audiences = args[:audiences] if args.key?(:audiences) - @provider_id = args[:provider_id] if args.key?(:provider_id) - end - end - - # `Authentication` defines the authentication configuration for an API. - # Example for an API targeted for external use: - # name: calendar.googleapis.com - # authentication: - # providers: - # - id: google_calendar_auth - # jwks_uri: https://www.googleapis.com/oauth2/v1/certs - # issuer: https://securetoken.google.com - # rules: - # - selector: "*" - # requirements: - # provider_id: google_calendar_auth - class Authentication - include Google::Apis::Core::Hashable - - # Defines a set of authentication providers that a service supports. - # Corresponds to the JSON property `providers` - # @return [Array] - attr_accessor :providers - - # A list of authentication rules that apply to individual API methods. - # **NOTE:** All service configuration rules follow "last one wins" order. - # Corresponds to the JSON property `rules` - # @return [Array] - attr_accessor :rules - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @providers = args[:providers] if args.key?(:providers) - @rules = args[:rules] if args.key?(:rules) - end - end - - # Authentication rules for the service. - # By default, if a method has any authentication requirements, every request - # must include a valid credential matching one of the requirements. - # It's an error to include more than one kind of credential in a single - # request. - # If a method doesn't have any auth requirements, request credentials will be - # ignored. - class AuthenticationRule - include Google::Apis::Core::Hashable - - # If true, the service accepts API keys without any other credential. - # Corresponds to the JSON property `allowWithoutCredential` - # @return [Boolean] - attr_accessor :allow_without_credential - alias_method :allow_without_credential?, :allow_without_credential - - # OAuth scopes are a way to define data and permissions on data. For example, - # there are scopes defined for "Read-only access to Google Calendar" and - # "Access to Cloud Platform". Users can consent to a scope for an application, - # giving it permission to access that data on their behalf. - # OAuth scope specifications should be fairly coarse grained; a user will need - # to see and understand the text description of what your scope means. - # In most cases: use one or at most two OAuth scopes for an entire family of - # products. If your product has multiple APIs, you should probably be sharing - # the OAuth scope across all of those APIs. - # When you need finer grained OAuth consent screens: talk with your product - # management about how developers will use them in practice. - # Please note that even though each of the canonical scopes is enough for a - # request to be accepted and passed to the backend, a request can still fail - # due to the backend requiring additional scopes or permissions. - # Corresponds to the JSON property `oauth` - # @return [Google::Apis::ServicenetworkingV1::OAuthRequirements] - attr_accessor :oauth - - # Requirements for additional authentication providers. - # Corresponds to the JSON property `requirements` - # @return [Array] - attr_accessor :requirements - - # Selects the methods to which this rule applies. - # Refer to selector for syntax details. - # Corresponds to the JSON property `selector` - # @return [String] - attr_accessor :selector - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @allow_without_credential = args[:allow_without_credential] if args.key?(:allow_without_credential) - @oauth = args[:oauth] if args.key?(:oauth) - @requirements = args[:requirements] if args.key?(:requirements) - @selector = args[:selector] if args.key?(:selector) - end - end - - # Configuration of authorization. - # This section determines the authorization provider, if unspecified, then no - # authorization check will be done. - # Example: - # experimental: - # authorization: - # provider: firebaserules.googleapis.com - class AuthorizationConfig - include Google::Apis::Core::Hashable - - # The name of the authorization provider, such as - # firebaserules.googleapis.com. - # Corresponds to the JSON property `provider` - # @return [String] - attr_accessor :provider - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @provider = args[:provider] if args.key?(:provider) - end - end - - # `Backend` defines the backend configuration for a service. - class Backend - include Google::Apis::Core::Hashable - - # A list of API backend rules that apply to individual API methods. - # **NOTE:** All service configuration rules follow "last one wins" order. - # Corresponds to the JSON property `rules` - # @return [Array] - attr_accessor :rules - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @rules = args[:rules] if args.key?(:rules) - end - end - - # A backend rule provides configuration for an individual API element. - class BackendRule - include Google::Apis::Core::Hashable - - # The address of the API backend. - # Corresponds to the JSON property `address` - # @return [String] - attr_accessor :address - - # The number of seconds to wait for a response from a request. The default - # deadline for gRPC is infinite (no deadline) and HTTP requests is 5 seconds. - # Corresponds to the JSON property `deadline` - # @return [Float] - attr_accessor :deadline - - # Minimum deadline in seconds needed for this method. Calls having deadline - # value lower than this will be rejected. - # Corresponds to the JSON property `minDeadline` - # @return [Float] - attr_accessor :min_deadline - - # Selects the methods to which this rule applies. - # Refer to selector for syntax details. - # Corresponds to the JSON property `selector` - # @return [String] - attr_accessor :selector - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @address = args[:address] if args.key?(:address) - @deadline = args[:deadline] if args.key?(:deadline) - @min_deadline = args[:min_deadline] if args.key?(:min_deadline) - @selector = args[:selector] if args.key?(:selector) - end - end - - # Billing related configuration of the service. - # The following example shows how to configure monitored resources and metrics - # for billing: - # monitored_resources: - # - type: library.googleapis.com/branch - # labels: - # - key: /city - # description: The city where the library branch is located in. - # - key: /name - # description: The name of the branch. - # metrics: - # - name: library.googleapis.com/book/borrowed_count - # metric_kind: DELTA - # value_type: INT64 - # billing: - # consumer_destinations: - # - monitored_resource: library.googleapis.com/branch - # metrics: - # - library.googleapis.com/book/borrowed_count - class Billing - include Google::Apis::Core::Hashable - - # Billing configurations for sending metrics to the consumer project. - # There can be multiple consumer destinations per service, each one must have - # a different monitored resource type. A metric can be used in at most - # one consumer destination. - # Corresponds to the JSON property `consumerDestinations` - # @return [Array] - attr_accessor :consumer_destinations - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations) - end - end - - # Configuration of a specific billing destination (Currently only support - # bill against consumer project). - class BillingDestination - include Google::Apis::Core::Hashable - - # Names of the metrics to report to this billing destination. - # Each name must be defined in Service.metrics section. - # Corresponds to the JSON property `metrics` - # @return [Array] - attr_accessor :metrics - - # The monitored resource type. The type must be defined in - # Service.monitored_resources section. - # Corresponds to the JSON property `monitoredResource` - # @return [String] - attr_accessor :monitored_resource - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @metrics = args[:metrics] if args.key?(:metrics) - @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource) - end - end - - # The request message for Operations.CancelOperation. - class CancelOperationRequest - include Google::Apis::Core::Hashable - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - end - end - - # `Context` defines which contexts an API requests. - # Example: - # context: - # rules: - # - selector: "*" - # requested: - # - google.rpc.context.ProjectContext - # - google.rpc.context.OriginContext - # The above specifies that all methods in the API request - # `google.rpc.context.ProjectContext` and - # `google.rpc.context.OriginContext`. - # Available context types are defined in package - # `google.rpc.context`. - # This also provides mechanism to whitelist any protobuf message extension that - # can be sent in grpc metadata using “x-goog-ext--bin” and - # “x-goog-ext--jspb” format. For example, list any service - # specific protobuf types that can appear in grpc metadata as follows in your - # yaml file: - # Example: - # context: - # rules: - # - selector: "google.example.library.v1.LibraryService.CreateBook" - # allowed_request_extensions: - # - google.foo.v1.NewExtension - # allowed_response_extensions: - # - google.foo.v1.NewExtension - # You can also specify extension ID instead of fully qualified extension name - # here. - class Context - include Google::Apis::Core::Hashable - - # A list of RPC context rules that apply to individual API methods. - # **NOTE:** All service configuration rules follow "last one wins" order. - # Corresponds to the JSON property `rules` - # @return [Array] - attr_accessor :rules - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @rules = args[:rules] if args.key?(:rules) - end - end - - # A context rule provides information about the context for an individual API - # element. - class ContextRule - include Google::Apis::Core::Hashable - - # A list of full type names or extension IDs of extensions allowed in grpc - # side channel from client to backend. - # Corresponds to the JSON property `allowedRequestExtensions` - # @return [Array] - attr_accessor :allowed_request_extensions - - # A list of full type names or extension IDs of extensions allowed in grpc - # side channel from backend to client. - # Corresponds to the JSON property `allowedResponseExtensions` - # @return [Array] - attr_accessor :allowed_response_extensions - - # A list of full type names of provided contexts. - # Corresponds to the JSON property `provided` - # @return [Array] - attr_accessor :provided - - # A list of full type names of requested contexts. - # Corresponds to the JSON property `requested` - # @return [Array] - attr_accessor :requested - - # Selects the methods to which this rule applies. - # Refer to selector for syntax details. - # Corresponds to the JSON property `selector` - # @return [String] - attr_accessor :selector - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @allowed_request_extensions = args[:allowed_request_extensions] if args.key?(:allowed_request_extensions) - @allowed_response_extensions = args[:allowed_response_extensions] if args.key?(:allowed_response_extensions) - @provided = args[:provided] if args.key?(:provided) - @requested = args[:requested] if args.key?(:requested) - @selector = args[:selector] if args.key?(:selector) - end - end - - # Selects and configures the service controller used by the service. The - # service controller handles features like abuse, quota, billing, logging, - # monitoring, etc. - class Control - include Google::Apis::Core::Hashable - - # The service control environment to use. If empty, no control plane - # feature (like quota and billing) will be enabled. - # Corresponds to the JSON property `environment` - # @return [String] - attr_accessor :environment - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @environment = args[:environment] if args.key?(:environment) - end - end - - # Customize service error responses. For example, list any service - # specific protobuf types that can appear in error detail lists of - # error responses. - # Example: - # custom_error: - # types: - # - google.foo.v1.CustomError - # - google.foo.v1.AnotherError - class CustomError - include Google::Apis::Core::Hashable - - # The list of custom error rules that apply to individual API messages. - # **NOTE:** All service configuration rules follow "last one wins" order. - # Corresponds to the JSON property `rules` - # @return [Array] - attr_accessor :rules - - # The list of custom error detail types, e.g. 'google.foo.v1.CustomError'. - # Corresponds to the JSON property `types` - # @return [Array] - attr_accessor :types - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @rules = args[:rules] if args.key?(:rules) - @types = args[:types] if args.key?(:types) - end - end - - # A custom error rule. - class CustomErrorRule - include Google::Apis::Core::Hashable - - # Mark this message as possible payload in error response. Otherwise, - # objects of this type will be filtered when they appear in error payload. - # Corresponds to the JSON property `isErrorType` - # @return [Boolean] - attr_accessor :is_error_type - alias_method :is_error_type?, :is_error_type - - # Selects messages to which this rule applies. - # Refer to selector for syntax details. - # Corresponds to the JSON property `selector` - # @return [String] - attr_accessor :selector - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @is_error_type = args[:is_error_type] if args.key?(:is_error_type) - @selector = args[:selector] if args.key?(:selector) - end - end - - # A custom pattern is used for defining custom HTTP verb. - class CustomHttpPattern - include Google::Apis::Core::Hashable - - # The name of this custom HTTP verb. - # Corresponds to the JSON property `kind` - # @return [String] - attr_accessor :kind - - # The path matched by this custom verb. - # Corresponds to the JSON property `path` - # @return [String] - attr_accessor :path - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @kind = args[:kind] if args.key?(:kind) - @path = args[:path] if args.key?(:path) - end - end - - # `Documentation` provides the information for describing a service. - # Example: - #
documentation:
-      # summary: >
-      # The Google Calendar API gives access
-      # to most calendar features.
-      # pages:
-      # - name: Overview
-      # content: (== include google/foo/overview.md ==)
-      # - name: Tutorial
-      # content: (== include google/foo/tutorial.md ==)
-      # subpages;
-      # - name: Java
-      # content: (== include google/foo/tutorial_java.md ==)
-      # rules:
-      # - selector: google.calendar.Calendar.Get
-      # description: >
-      # ...
-      # - selector: google.calendar.Calendar.Put
-      # description: >
-      # ...
-      # 
- # Documentation is provided in markdown syntax. In addition to - # standard markdown features, definition lists, tables and fenced - # code blocks are supported. Section headers can be provided and are - # interpreted relative to the section nesting of the context where - # a documentation fragment is embedded. - # Documentation from the IDL is merged with documentation defined - # via the config at normalization time, where documentation provided - # by config rules overrides IDL provided. - # A number of constructs specific to the API platform are supported - # in documentation text. - # In order to reference a proto element, the following - # notation can be used: - #
[fully.qualified.proto.name][]
- # To override the display text used for the link, this can be used: - #
[display text][fully.qualified.proto.name]
- # Text can be excluded from doc using the following notation: - #
(-- internal comment --)
- # A few directives are available in documentation. Note that - # directives must appear on a single line to be properly - # identified. The `include` directive includes a markdown file from - # an external source: - #
(== include path/to/file ==)
- # The `resource_for` directive marks a message to be the resource of - # a collection in REST view. If it is not specified, tools attempt - # to infer the resource from the operations in a collection: - #
(== resource_for v1.shelves.books ==)
- # The directive `suppress_warning` does not directly affect documentation - # and is documented together with service config validation. - class Documentation - include Google::Apis::Core::Hashable - - # The URL to the root of documentation. - # Corresponds to the JSON property `documentationRootUrl` - # @return [String] - attr_accessor :documentation_root_url - - # Declares a single overview page. For example: - #
documentation:
-        # summary: ...
-        # overview: (== include overview.md ==)
-        # 
- # This is a shortcut for the following declaration (using pages style): - #
documentation:
-        # summary: ...
-        # pages:
-        # - name: Overview
-        # content: (== include overview.md ==)
-        # 
- # Note: you cannot specify both `overview` field and `pages` field. - # Corresponds to the JSON property `overview` - # @return [String] - attr_accessor :overview - - # The top level pages for the documentation set. - # Corresponds to the JSON property `pages` - # @return [Array] - attr_accessor :pages - - # A list of documentation rules that apply to individual API elements. - # **NOTE:** All service configuration rules follow "last one wins" order. - # Corresponds to the JSON property `rules` - # @return [Array] - attr_accessor :rules - - # A short summary of what the service does. Can only be provided by - # plain text. - # Corresponds to the JSON property `summary` - # @return [String] - attr_accessor :summary - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @documentation_root_url = args[:documentation_root_url] if args.key?(:documentation_root_url) - @overview = args[:overview] if args.key?(:overview) - @pages = args[:pages] if args.key?(:pages) - @rules = args[:rules] if args.key?(:rules) - @summary = args[:summary] if args.key?(:summary) - end - end - - # A documentation rule provides information about individual API elements. - class DocumentationRule - include Google::Apis::Core::Hashable - - # Deprecation description of the selected element(s). It can be provided if an - # element is marked as `deprecated`. - # Corresponds to the JSON property `deprecationDescription` - # @return [String] - attr_accessor :deprecation_description - - # Description of the selected API(s). - # Corresponds to the JSON property `description` - # @return [String] - attr_accessor :description - - # The selector is a comma-separated list of patterns. Each pattern is a - # qualified name of the element which may end in "*", indicating a wildcard. - # Wildcards are only allowed at the end and for a whole component of the - # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". To - # specify a default for all applicable elements, the whole pattern "*" - # is used. - # Corresponds to the JSON property `selector` - # @return [String] - attr_accessor :selector - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @deprecation_description = args[:deprecation_description] if args.key?(:deprecation_description) - @description = args[:description] if args.key?(:description) - @selector = args[:selector] if args.key?(:selector) - 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 - - # `Endpoint` describes a network endpoint that serves a set of APIs. - # A service may expose any number of endpoints, and all endpoints share the - # same service configuration, such as quota configuration and monitoring - # configuration. - # Example service configuration: - # name: library-example.googleapis.com - # endpoints: - # # Below entry makes 'google.example.library.v1.Library' - # # API be served from endpoint address library-example.googleapis.com. - # # It also allows HTTP OPTIONS calls to be passed to the backend, for - # # it to decide whether the subsequent cross-origin request is - # # allowed to proceed. - # - name: library-example.googleapis.com - # allow_cors: true - class Endpoint - include Google::Apis::Core::Hashable - - # DEPRECATED: This field is no longer supported. Instead of using aliases, - # please specify multiple google.api.Endpoint for each of the intended - # aliases. - # Additional names that this endpoint will be hosted on. - # Corresponds to the JSON property `aliases` - # @return [Array] - attr_accessor :aliases - - # Allowing - # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka - # cross-domain traffic, would allow the backends served from this endpoint to - # receive and respond to HTTP OPTIONS requests. The response will be used by - # the browser to determine whether the subsequent cross-origin request is - # allowed to proceed. - # Corresponds to the JSON property `allowCors` - # @return [Boolean] - attr_accessor :allow_cors - alias_method :allow_cors?, :allow_cors - - # The list of features enabled on this endpoint. - # Corresponds to the JSON property `features` - # @return [Array] - attr_accessor :features - - # The canonical name of this endpoint. - # Corresponds to the JSON property `name` - # @return [String] - attr_accessor :name - - # The specification of an Internet routable address of API frontend that will - # handle requests to this [API Endpoint](https://cloud.google.com/apis/design/ - # glossary). - # It should be either a valid IPv4 address or a fully-qualified domain name. - # For example, "8.8.8.8" or "myservice.appspot.com". - # Corresponds to the JSON property `target` - # @return [String] - attr_accessor :target - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @aliases = args[:aliases] if args.key?(:aliases) - @allow_cors = args[:allow_cors] if args.key?(:allow_cors) - @features = args[:features] if args.key?(:features) - @name = args[:name] if args.key?(:name) - @target = args[:target] if args.key?(:target) - end - end - - # Enum type definition. - class Enum - include Google::Apis::Core::Hashable - - # Enum value definitions. - # Corresponds to the JSON property `enumvalue` - # @return [Array] - attr_accessor :enumvalue - - # Enum type name. - # Corresponds to the JSON property `name` - # @return [String] - attr_accessor :name - - # Protocol buffer options. - # Corresponds to the JSON property `options` - # @return [Array] - attr_accessor :options - - # `SourceContext` represents information about the source of a - # protobuf element, like the file in which it is defined. - # Corresponds to the JSON property `sourceContext` - # @return [Google::Apis::ServicenetworkingV1::SourceContext] - attr_accessor :source_context - - # The source syntax. - # Corresponds to the JSON property `syntax` - # @return [String] - attr_accessor :syntax - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @enumvalue = args[:enumvalue] if args.key?(:enumvalue) - @name = args[:name] if args.key?(:name) - @options = args[:options] if args.key?(:options) - @source_context = args[:source_context] if args.key?(:source_context) - @syntax = args[:syntax] if args.key?(:syntax) - end - end - - # Enum value definition. - class EnumValue - include Google::Apis::Core::Hashable - - # Enum value name. - # Corresponds to the JSON property `name` - # @return [String] - attr_accessor :name - - # Enum value number. - # Corresponds to the JSON property `number` - # @return [Fixnum] - attr_accessor :number - - # Protocol buffer options. - # Corresponds to the JSON property `options` - # @return [Array] - attr_accessor :options - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @name = args[:name] if args.key?(:name) - @number = args[:number] if args.key?(:number) - @options = args[:options] if args.key?(:options) - end - end - - # Experimental service configuration. These configuration options can - # only be used by whitelisted users. - class Experimental - include Google::Apis::Core::Hashable - - # Configuration of authorization. - # This section determines the authorization provider, if unspecified, then no - # authorization check will be done. - # Example: - # experimental: - # authorization: - # provider: firebaserules.googleapis.com - # Corresponds to the JSON property `authorization` - # @return [Google::Apis::ServicenetworkingV1::AuthorizationConfig] - attr_accessor :authorization - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @authorization = args[:authorization] if args.key?(:authorization) - end - end - - # A single field of a message type. - class Field - include Google::Apis::Core::Hashable - - # The field cardinality. - # Corresponds to the JSON property `cardinality` - # @return [String] - attr_accessor :cardinality - - # The string value of the default value of this field. Proto2 syntax only. - # Corresponds to the JSON property `defaultValue` - # @return [String] - attr_accessor :default_value - - # The field JSON name. - # Corresponds to the JSON property `jsonName` - # @return [String] - attr_accessor :json_name - - # The field type. - # Corresponds to the JSON property `kind` - # @return [String] - attr_accessor :kind - - # The field name. - # Corresponds to the JSON property `name` - # @return [String] - attr_accessor :name - - # The field number. - # Corresponds to the JSON property `number` - # @return [Fixnum] - attr_accessor :number - - # The index of the field type in `Type.oneofs`, for message or enumeration - # types. The first type has index 1; zero means the type is not in the list. - # Corresponds to the JSON property `oneofIndex` - # @return [Fixnum] - attr_accessor :oneof_index - - # The protocol buffer options. - # Corresponds to the JSON property `options` - # @return [Array] - attr_accessor :options - - # Whether to use alternative packed wire representation. - # Corresponds to the JSON property `packed` - # @return [Boolean] - attr_accessor :packed - alias_method :packed?, :packed - - # The field type URL, without the scheme, for message or enumeration - # types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. - # Corresponds to the JSON property `typeUrl` - # @return [String] - attr_accessor :type_url - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @cardinality = args[:cardinality] if args.key?(:cardinality) - @default_value = args[:default_value] if args.key?(:default_value) - @json_name = args[:json_name] if args.key?(:json_name) - @kind = args[:kind] if args.key?(:kind) - @name = args[:name] if args.key?(:name) - @number = args[:number] if args.key?(:number) - @oneof_index = args[:oneof_index] if args.key?(:oneof_index) - @options = args[:options] if args.key?(:options) - @packed = args[:packed] if args.key?(:packed) - @type_url = args[:type_url] if args.key?(:type_url) - end - end - - # Defines the HTTP configuration for an API service. It contains a list of - # HttpRule, each specifying the mapping of an RPC method - # to one or more HTTP REST API methods. - class Http - include Google::Apis::Core::Hashable - - # When set to true, URL path parmeters will be fully URI-decoded except in - # cases of single segment matches in reserved expansion, where "%2F" will be - # left encoded. - # The default behavior is to not decode RFC 6570 reserved characters in multi - # segment matches. - # Corresponds to the JSON property `fullyDecodeReservedExpansion` - # @return [Boolean] - attr_accessor :fully_decode_reserved_expansion - alias_method :fully_decode_reserved_expansion?, :fully_decode_reserved_expansion - - # A list of HTTP configuration rules that apply to individual API methods. - # **NOTE:** All service configuration rules follow "last one wins" order. - # Corresponds to the JSON property `rules` - # @return [Array] - attr_accessor :rules - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @fully_decode_reserved_expansion = args[:fully_decode_reserved_expansion] if args.key?(:fully_decode_reserved_expansion) - @rules = args[:rules] if args.key?(:rules) - end - end - - # # gRPC Transcoding - # gRPC Transcoding is a feature for mapping between a gRPC method and one or - # more HTTP REST endpoints. It allows developers to build a single API service - # that supports both gRPC APIs and REST APIs. Many systems, including [Google - # APIs](https://github.com/googleapis/googleapis), - # [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC - # Gateway](https://github.com/grpc-ecosystem/grpc-gateway), - # and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature - # and use it for large scale production services. - # `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies - # how different portions of the gRPC request message are mapped to the URL - # path, URL query parameters, and HTTP request body. It also controls how the - # gRPC response message is mapped to the HTTP response body. `HttpRule` is - # typically specified as an `google.api.http` annotation on the gRPC method. - # Each mapping specifies a URL path template and an HTTP method. The path - # template may refer to one or more fields in the gRPC request message, as long - # as each field is a non-repeated field with a primitive (non-message) type. - # The path template controls how fields of the request message are mapped to - # the URL path. - # Example: - # service Messaging ` - # rpc GetMessage(GetMessageRequest) returns (Message) ` - # option (google.api.http) = ` - # get: "/v1/`name=messages/*"`" - # `; - # ` - # ` - # message GetMessageRequest ` - # string name = 1; // Mapped to URL path. - # ` - # message Message ` - # string text = 1; // The resource content. - # ` - # This enables an HTTP REST to gRPC mapping as below: - # HTTP | gRPC - # -----|----- - # `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")` - # Any fields in the request message which are not bound by the path template - # automatically become HTTP query parameters if there is no HTTP request body. - # For example: - # service Messaging ` - # rpc GetMessage(GetMessageRequest) returns (Message) ` - # option (google.api.http) = ` - # get:"/v1/messages/`message_id`" - # `; - # ` - # ` - # message GetMessageRequest ` - # message SubMessage ` - # string subfield = 1; - # ` - # string message_id = 1; // Mapped to URL path. - # int64 revision = 2; // Mapped to URL query parameter `revision`. - # SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`. - # ` - # This enables a HTTP JSON to RPC mapping as below: - # HTTP | gRPC - # -----|----- - # `GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: - # "123456" revision: 2 sub: SubMessage(subfield: "foo"))` - # Note that fields which are mapped to URL query parameters must have a - # primitive type or a repeated primitive type or a non-repeated message type. - # In the case of a repeated type, the parameter can be repeated in the URL - # as `...?param=A¶m=B`. In the case of a message type, each field of the - # message is mapped to a separate parameter, such as - # `...?foo.a=A&foo.b=B&foo.c=C`. - # For HTTP methods that allow a request body, the `body` field - # specifies the mapping. Consider a REST update method on the - # message resource collection: - # service Messaging ` - # rpc UpdateMessage(UpdateMessageRequest) returns (Message) ` - # option (google.api.http) = ` - # patch: "/v1/messages/`message_id`" - # body: "message" - # `; - # ` - # ` - # message UpdateMessageRequest ` - # string message_id = 1; // mapped to the URL - # Message message = 2; // mapped to the body - # ` - # The following HTTP JSON to RPC mapping is enabled, where the - # representation of the JSON in the request body is determined by - # protos JSON encoding: - # HTTP | gRPC - # -----|----- - # `PATCH /v1/messages/123456 ` "text": "Hi!" `` | `UpdateMessage(message_id: " - # 123456" message ` text: "Hi!" `)` - # The special name `*` can be used in the body mapping to define that - # every field not bound by the path template should be mapped to the - # request body. This enables the following alternative definition of - # the update method: - # service Messaging ` - # rpc UpdateMessage(Message) returns (Message) ` - # option (google.api.http) = ` - # patch: "/v1/messages/`message_id`" - # body: "*" - # `; - # ` - # ` - # message Message ` - # string message_id = 1; - # string text = 2; - # ` - # The following HTTP JSON to RPC mapping is enabled: - # HTTP | gRPC - # -----|----- - # `PATCH /v1/messages/123456 ` "text": "Hi!" `` | `UpdateMessage(message_id: " - # 123456" text: "Hi!")` - # Note that when using `*` in the body mapping, it is not possible to - # have HTTP parameters, as all fields not bound by the path end in - # the body. This makes this option more rarely used in practice when - # defining REST APIs. The common usage of `*` is in custom methods - # which don't use the URL at all for transferring data. - # It is possible to define multiple HTTP methods for one RPC by using - # the `additional_bindings` option. Example: - # service Messaging ` - # rpc GetMessage(GetMessageRequest) returns (Message) ` - # option (google.api.http) = ` - # get: "/v1/messages/`message_id`" - # additional_bindings ` - # get: "/v1/users/`user_id`/messages/`message_id`" - # ` - # `; - # ` - # ` - # message GetMessageRequest ` - # string message_id = 1; - # string user_id = 2; - # ` - # This enables the following two alternative HTTP JSON to RPC mappings: - # HTTP | gRPC - # -----|----- - # `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` - # `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: " - # 123456")` - # ## Rules for HTTP mapping - # 1. Leaf request fields (recursive expansion nested messages in the request - # message) are classified into three categories: - # - Fields referred by the path template. They are passed via the URL path. - # - Fields referred by the HttpRule.body. They are passed via the HTTP - # request body. - # - All other fields are passed via the URL query parameters, and the - # parameter name is the field path in the request message. A repeated - # field can be represented as multiple query parameters under the same - # name. - # 2. If HttpRule.body is "*", there is no URL query parameter, all fields - # are passed via URL path and HTTP request body. - # 3. If HttpRule.body is omitted, there is no HTTP request body, all - # fields are passed via URL path and URL query parameters. - # ### Path template syntax - # Template = "/" Segments [ Verb ] ; - # Segments = Segment ` "/" Segment ` ; - # Segment = "*" | "**" | LITERAL | Variable ; - # Variable = "`" FieldPath [ "=" Segments ] "`" ; - # FieldPath = IDENT ` "." IDENT ` ; - # Verb = ":" LITERAL ; - # The syntax `*` matches a single URL path segment. The syntax `**` matches - # zero or more URL path segments, which must be the last part of the URL path - # except the `Verb`. - # The syntax `Variable` matches part of the URL path as specified by its - # template. A variable template must not contain other variables. If a variable - # matches a single path segment, its template may be omitted, e.g. ``var`` - # is equivalent to ``var=*``. - # The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL` - # contains any reserved character, such characters should be percent-encoded - # before the matching. - # If a variable contains exactly one path segment, such as `"`var`"` or - # `"`var=*`"`, when such a variable is expanded into a URL path on the client - # side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The - # server side does the reverse decoding. Such variables show up in the - # [Discovery Document](https://developers.google.com/discovery/v1/reference/apis) - # as ``var``. - # If a variable contains multiple path segments, such as `"`var=foo/*`"` - # or `"`var=**`"`, when such a variable is expanded into a URL path on the - # client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. - # The server side does the reverse decoding, except "%2F" and "%2f" are left - # unchanged. Such variables show up in the - # [Discovery Document](https://developers.google.com/discovery/v1/reference/apis) - # as ``+var``. - # ## Using gRPC API Service Configuration - # gRPC API Service Configuration (service config) is a configuration language - # for configuring a gRPC service to become a user-facing product. The - # service config is simply the YAML representation of the `google.api.Service` - # proto message. - # As an alternative to annotating your proto file, you can configure gRPC - # transcoding in your service config YAML files. You do this by specifying a - # `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same - # effect as the proto annotation. This can be particularly useful if you - # have a proto that is reused in multiple services. Note that any transcoding - # specified in the service config will override any matching transcoding - # configuration in the proto. - # Example: - # http: - # rules: - # # Selects a gRPC method and applies HttpRule to it. - # - selector: example.v1.Messaging.GetMessage - # get: /v1/messages/`message_id`/`sub.subfield` - # ## Special notes - # When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the - # proto to JSON conversion must follow the [proto3 - # specification](https://developers.google.com/protocol-buffers/docs/proto3#json) - # . - # While the single segment variable follows the semantics of - # [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String - # Expansion, the multi segment variable **does not** follow RFC 6570 Section - # 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion - # does not expand special characters like `?` and `#`, which would lead - # to invalid URLs. As the result, gRPC Transcoding uses a custom encoding - # for multi segment variables. - # The path variables **must not** refer to any repeated or mapped field, - # because client libraries are not capable of handling such variable expansion. - # The path variables **must not** capture the leading "/" character. The reason - # is that the most common use case "`var`" does not capture the leading "/" - # character. For consistency, all path variables must share the same behavior. - # Repeated message fields must not be mapped to URL query parameters, because - # no client library can support such complicated mapping. - # If an API needs to use a JSON array for request or response body, it can map - # the request or response body to a repeated field. However, some gRPC - # Transcoding implementations may not support this feature. - class HttpRule - include Google::Apis::Core::Hashable - - # Additional HTTP bindings for the selector. Nested bindings must - # not contain an `additional_bindings` field themselves (that is, - # the nesting may only be one level deep). - # Corresponds to the JSON property `additionalBindings` - # @return [Array] - attr_accessor :additional_bindings - - # The name of the request field whose value is mapped to the HTTP request - # body, or `*` for mapping all request fields not captured by the path - # pattern to the HTTP body, or omitted for not having any HTTP request body. - # NOTE: the referred field must be present at the top-level of the request - # message type. - # Corresponds to the JSON property `body` - # @return [String] - attr_accessor :body - - # A custom pattern is used for defining custom HTTP verb. - # Corresponds to the JSON property `custom` - # @return [Google::Apis::ServicenetworkingV1::CustomHttpPattern] - attr_accessor :custom - - # Maps to HTTP DELETE. Used for deleting a resource. - # Corresponds to the JSON property `delete` - # @return [String] - attr_accessor :delete - - # Maps to HTTP GET. Used for listing and getting information about - # resources. - # Corresponds to the JSON property `get` - # @return [String] - attr_accessor :get - - # Maps to HTTP PATCH. Used for updating a resource. - # Corresponds to the JSON property `patch` - # @return [String] - attr_accessor :patch - - # Maps to HTTP POST. Used for creating a resource or performing an action. - # Corresponds to the JSON property `post` - # @return [String] - attr_accessor :post - - # Maps to HTTP PUT. Used for replacing a resource. - # Corresponds to the JSON property `put` - # @return [String] - attr_accessor :put - - # Optional. The name of the response field whose value is mapped to the HTTP - # response body. When omitted, the entire response message will be used - # as the HTTP response body. - # NOTE: The referred field must be present at the top-level of the response - # message type. - # Corresponds to the JSON property `responseBody` - # @return [String] - attr_accessor :response_body - - # Selects a method to which this rule applies. - # Refer to selector for syntax details. - # Corresponds to the JSON property `selector` - # @return [String] - attr_accessor :selector - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @additional_bindings = args[:additional_bindings] if args.key?(:additional_bindings) - @body = args[:body] if args.key?(:body) - @custom = args[:custom] if args.key?(:custom) - @delete = args[:delete] if args.key?(:delete) - @get = args[:get] if args.key?(:get) - @patch = args[:patch] if args.key?(:patch) - @post = args[:post] if args.key?(:post) - @put = args[:put] if args.key?(:put) - @response_body = args[:response_body] if args.key?(:response_body) - @selector = args[:selector] if args.key?(:selector) - end - end - - # A description of a label. - class LabelDescriptor - include Google::Apis::Core::Hashable - - # A human-readable description for the label. - # Corresponds to the JSON property `description` - # @return [String] - attr_accessor :description - - # The label key. - # Corresponds to the JSON property `key` - # @return [String] - attr_accessor :key - - # The type of data that can be assigned to the label. - # Corresponds to the JSON property `valueType` - # @return [String] - attr_accessor :value_type - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @description = args[:description] if args.key?(:description) - @key = args[:key] if args.key?(:key) - @value_type = args[:value_type] if args.key?(:value_type) - end - end - - # The response message for Operations.ListOperations. - class ListOperationsResponse - include Google::Apis::Core::Hashable - - # The standard List next-page token. - # Corresponds to the JSON property `nextPageToken` - # @return [String] - attr_accessor :next_page_token - - # A list of operations that matches the specified filter in the request. - # Corresponds to the JSON property `operations` - # @return [Array] - attr_accessor :operations - - 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) - @operations = args[:operations] if args.key?(:operations) - end - end - - # A description of a log type. Example in YAML format: - # - name: library.googleapis.com/activity_history - # description: The history of borrowing and returning library items. - # display_name: Activity - # labels: - # - key: /customer_id - # description: Identifier of a library customer - class LogDescriptor - include Google::Apis::Core::Hashable - - # A human-readable description of this log. This information appears in - # the documentation and can contain details. - # Corresponds to the JSON property `description` - # @return [String] - attr_accessor :description - - # The human-readable name for this log. This information appears on - # the user interface and should be concise. - # Corresponds to the JSON property `displayName` - # @return [String] - attr_accessor :display_name - - # The set of labels that are available to describe a specific log entry. - # Runtime requests that contain labels not specified here are - # considered invalid. - # Corresponds to the JSON property `labels` - # @return [Array] - attr_accessor :labels - - # The name of the log. It must be less than 512 characters long and can - # include the following characters: upper- and lower-case alphanumeric - # characters [A-Za-z0-9], and punctuation characters including - # slash, underscore, hyphen, period [/_-.]. - # 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) - @description = args[:description] if args.key?(:description) - @display_name = args[:display_name] if args.key?(:display_name) - @labels = args[:labels] if args.key?(:labels) - @name = args[:name] if args.key?(:name) - end - end - - # Logging configuration of the service. - # The following example shows how to configure logs to be sent to the - # producer and consumer projects. In the example, the `activity_history` - # log is sent to both the producer and consumer projects, whereas the - # `purchase_history` log is only sent to the producer project. - # monitored_resources: - # - type: library.googleapis.com/branch - # labels: - # - key: /city - # description: The city where the library branch is located in. - # - key: /name - # description: The name of the branch. - # logs: - # - name: activity_history - # labels: - # - key: /customer_id - # - name: purchase_history - # logging: - # producer_destinations: - # - monitored_resource: library.googleapis.com/branch - # logs: - # - activity_history - # - purchase_history - # consumer_destinations: - # - monitored_resource: library.googleapis.com/branch - # logs: - # - activity_history - class Logging - include Google::Apis::Core::Hashable - - # Logging configurations for sending logs to the consumer project. - # There can be multiple consumer destinations, each one must have a - # different monitored resource type. A log can be used in at most - # one consumer destination. - # Corresponds to the JSON property `consumerDestinations` - # @return [Array] - attr_accessor :consumer_destinations - - # Logging configurations for sending logs to the producer project. - # There can be multiple producer destinations, each one must have a - # different monitored resource type. A log can be used in at most - # one producer destination. - # Corresponds to the JSON property `producerDestinations` - # @return [Array] - attr_accessor :producer_destinations - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations) - @producer_destinations = args[:producer_destinations] if args.key?(:producer_destinations) - end - end - - # Configuration of a specific logging destination (the producer project - # or the consumer project). - class LoggingDestination - include Google::Apis::Core::Hashable - - # Names of the logs to be sent to this destination. Each name must - # be defined in the Service.logs section. If the log name is - # not a domain scoped name, it will be automatically prefixed with - # the service name followed by "/". - # Corresponds to the JSON property `logs` - # @return [Array] - attr_accessor :logs - - # The monitored resource type. The type must be defined in the - # Service.monitored_resources section. - # Corresponds to the JSON property `monitoredResource` - # @return [String] - attr_accessor :monitored_resource - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @logs = args[:logs] if args.key?(:logs) - @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource) - end - end - - # Method represents a method of an API interface. - class MethodProp - include Google::Apis::Core::Hashable - - # The simple name of this method. - # Corresponds to the JSON property `name` - # @return [String] - attr_accessor :name - - # Any metadata attached to the method. - # Corresponds to the JSON property `options` - # @return [Array] - attr_accessor :options - - # If true, the request is streamed. - # Corresponds to the JSON property `requestStreaming` - # @return [Boolean] - attr_accessor :request_streaming - alias_method :request_streaming?, :request_streaming - - # A URL of the input message type. - # Corresponds to the JSON property `requestTypeUrl` - # @return [String] - attr_accessor :request_type_url - - # If true, the response is streamed. - # Corresponds to the JSON property `responseStreaming` - # @return [Boolean] - attr_accessor :response_streaming - alias_method :response_streaming?, :response_streaming - - # The URL of the output message type. - # Corresponds to the JSON property `responseTypeUrl` - # @return [String] - attr_accessor :response_type_url - - # The source syntax of this method. - # Corresponds to the JSON property `syntax` - # @return [String] - attr_accessor :syntax - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @name = args[:name] if args.key?(:name) - @options = args[:options] if args.key?(:options) - @request_streaming = args[:request_streaming] if args.key?(:request_streaming) - @request_type_url = args[:request_type_url] if args.key?(:request_type_url) - @response_streaming = args[:response_streaming] if args.key?(:response_streaming) - @response_type_url = args[:response_type_url] if args.key?(:response_type_url) - @syntax = args[:syntax] if args.key?(:syntax) - end - end - - # Defines a metric type and its schema. Once a metric descriptor is created, - # deleting or altering it stops data collection and makes the metric type's - # existing data unusable. - class MetricDescriptor - include Google::Apis::Core::Hashable - - # A detailed description of the metric, which can be used in documentation. - # Corresponds to the JSON property `description` - # @return [String] - attr_accessor :description - - # A concise name for the metric, which can be displayed in user interfaces. - # Use sentence case without an ending period, for example "Request count". - # This field is optional but it is recommended to be set for any metrics - # associated with user-visible concepts, such as Quota. - # Corresponds to the JSON property `displayName` - # @return [String] - attr_accessor :display_name - - # The set of labels that can be used to describe a specific - # instance of this metric type. For example, the - # `appengine.googleapis.com/http/server/response_latencies` metric - # type has a label for the HTTP response code, `response_code`, so - # you can look at latencies for successful responses or just - # for responses that failed. - # Corresponds to the JSON property `labels` - # @return [Array] - attr_accessor :labels - - # Additional annotations that can be used to guide the usage of a metric. - # Corresponds to the JSON property `metadata` - # @return [Google::Apis::ServicenetworkingV1::MetricDescriptorMetadata] - attr_accessor :metadata - - # Whether the metric records instantaneous values, changes to a value, etc. - # Some combinations of `metric_kind` and `value_type` might not be supported. - # Corresponds to the JSON property `metricKind` - # @return [String] - attr_accessor :metric_kind - - # The resource name of the metric descriptor. - # Corresponds to the JSON property `name` - # @return [String] - attr_accessor :name - - # The metric type, including its DNS name prefix. The type is not - # URL-encoded. All user-defined metric types have the DNS name - # `custom.googleapis.com` or `external.googleapis.com`. Metric types should - # use a natural hierarchical grouping. For example: - # "custom.googleapis.com/invoice/paid/amount" - # "external.googleapis.com/prometheus/up" - # "appengine.googleapis.com/http/server/response_latencies" - # Corresponds to the JSON property `type` - # @return [String] - attr_accessor :type - - # The unit in which the metric value is reported. It is only applicable - # if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The - # supported units are a subset of [The Unified Code for Units of - # Measure](http://unitsofmeasure.org/ucum.html) standard: - # **Basic units (UNIT)** - # * `bit` bit - # * `By` byte - # * `s` second - # * `min` minute - # * `h` hour - # * `d` day - # **Prefixes (PREFIX)** - # * `k` kilo (10**3) - # * `M` mega (10**6) - # * `G` giga (10**9) - # * `T` tera (10**12) - # * `P` peta (10**15) - # * `E` exa (10**18) - # * `Z` zetta (10**21) - # * `Y` yotta (10**24) - # * `m` milli (10**-3) - # * `u` micro (10**-6) - # * `n` nano (10**-9) - # * `p` pico (10**-12) - # * `f` femto (10**-15) - # * `a` atto (10**-18) - # * `z` zepto (10**-21) - # * `y` yocto (10**-24) - # * `Ki` kibi (2**10) - # * `Mi` mebi (2**20) - # * `Gi` gibi (2**30) - # * `Ti` tebi (2**40) - # **Grammar** - # The grammar also includes these connectors: - # * `/` division (as an infix operator, e.g. `1/s`). - # * `.` multiplication (as an infix operator, e.g. `GBy.d`) - # The grammar for a unit is as follows: - # Expression = Component ` "." Component ` ` "/" Component ` ; - # Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ] - # | Annotation - # | "1" - # ; - # Annotation = "`" NAME "`" ; - # Notes: - # * `Annotation` is just a comment if it follows a `UNIT` and is - # equivalent to `1` if it is used alone. For examples, - # ``requests`/s == 1/s`, `By`transmitted`/s == By/s`. - # * `NAME` is a sequence of non-blank printable ASCII characters not - # containing '`' or '`'. - # * `1` represents dimensionless value 1, such as in `1/s`. - # * `%` represents dimensionless value 1/100, and annotates values giving - # a percentage. - # Corresponds to the JSON property `unit` - # @return [String] - attr_accessor :unit - - # Whether the measurement is an integer, a floating-point number, etc. - # Some combinations of `metric_kind` and `value_type` might not be supported. - # Corresponds to the JSON property `valueType` - # @return [String] - attr_accessor :value_type - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @description = args[:description] if args.key?(:description) - @display_name = args[:display_name] if args.key?(:display_name) - @labels = args[:labels] if args.key?(:labels) - @metadata = args[:metadata] if args.key?(:metadata) - @metric_kind = args[:metric_kind] if args.key?(:metric_kind) - @name = args[:name] if args.key?(:name) - @type = args[:type] if args.key?(:type) - @unit = args[:unit] if args.key?(:unit) - @value_type = args[:value_type] if args.key?(:value_type) - end - end - - # Additional annotations that can be used to guide the usage of a metric. - class MetricDescriptorMetadata - include Google::Apis::Core::Hashable - - # The delay of data points caused by ingestion. Data points older than this - # age are guaranteed to be ingested and available to be read, excluding - # data loss due to errors. - # Corresponds to the JSON property `ingestDelay` - # @return [String] - attr_accessor :ingest_delay - - # The launch stage of the metric definition. - # Corresponds to the JSON property `launchStage` - # @return [String] - attr_accessor :launch_stage - - # The sampling period of metric data points. For metrics which are written - # periodically, consecutive data points are stored at this time interval, - # excluding data loss due to errors. Metrics with a higher granularity have - # a smaller sampling period. - # Corresponds to the JSON property `samplePeriod` - # @return [String] - attr_accessor :sample_period - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @ingest_delay = args[:ingest_delay] if args.key?(:ingest_delay) - @launch_stage = args[:launch_stage] if args.key?(:launch_stage) - @sample_period = args[:sample_period] if args.key?(:sample_period) - end - end - - # Bind API methods to metrics. Binding a method to a metric causes that - # metric's configured quota behaviors to apply to the method call. - class MetricRule - include Google::Apis::Core::Hashable - - # Metrics to update when the selected methods are called, and the associated - # cost applied to each metric. - # The key of the map is the metric name, and the values are the amount - # increased for the metric against which the quota limits are defined. - # The value must not be negative. - # Corresponds to the JSON property `metricCosts` - # @return [Hash] - attr_accessor :metric_costs - - # Selects the methods to which this rule applies. - # Refer to selector for syntax details. - # Corresponds to the JSON property `selector` - # @return [String] - attr_accessor :selector - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @metric_costs = args[:metric_costs] if args.key?(:metric_costs) - @selector = args[:selector] if args.key?(:selector) - end - end - - # Declares an API Interface to be included in this interface. The including - # interface must redeclare all the methods from the included interface, but - # documentation and options are inherited as follows: - # - If after comment and whitespace stripping, the documentation - # string of the redeclared method is empty, it will be inherited - # from the original method. - # - Each annotation belonging to the service config (http, - # visibility) which is not set in the redeclared method will be - # inherited. - # - If an http annotation is inherited, the path pattern will be - # modified as follows. Any version prefix will be replaced by the - # version of the including interface plus the root path if - # specified. - # Example of a simple mixin: - # package google.acl.v1; - # service AccessControl ` - # // Get the underlying ACL object. - # rpc GetAcl(GetAclRequest) returns (Acl) ` - # option (google.api.http).get = "/v1/`resource=**`:getAcl"; - # ` - # ` - # package google.storage.v2; - # service Storage ` - # // rpc GetAcl(GetAclRequest) returns (Acl); - # // Get a data record. - # rpc GetData(GetDataRequest) returns (Data) ` - # option (google.api.http).get = "/v2/`resource=**`"; - # ` - # ` - # Example of a mixin configuration: - # apis: - # - name: google.storage.v2.Storage - # mixins: - # - name: google.acl.v1.AccessControl - # The mixin construct implies that all methods in `AccessControl` are - # also declared with same name and request/response types in - # `Storage`. A documentation generator or annotation processor will - # see the effective `Storage.GetAcl` method after inherting - # documentation and annotations as follows: - # service Storage ` - # // Get the underlying ACL object. - # rpc GetAcl(GetAclRequest) returns (Acl) ` - # option (google.api.http).get = "/v2/`resource=**`:getAcl"; - # ` - # ... - # ` - # Note how the version in the path pattern changed from `v1` to `v2`. - # If the `root` field in the mixin is specified, it should be a - # relative path under which inherited HTTP paths are placed. Example: - # apis: - # - name: google.storage.v2.Storage - # mixins: - # - name: google.acl.v1.AccessControl - # root: acls - # This implies the following inherited HTTP annotation: - # service Storage ` - # // Get the underlying ACL object. - # rpc GetAcl(GetAclRequest) returns (Acl) ` - # option (google.api.http).get = "/v2/acls/`resource=**`:getAcl"; - # ` - # ... - # ` - class Mixin - include Google::Apis::Core::Hashable - - # The fully qualified name of the interface which is included. - # Corresponds to the JSON property `name` - # @return [String] - attr_accessor :name - - # If non-empty specifies a path under which inherited HTTP paths - # are rooted. - # Corresponds to the JSON property `root` - # @return [String] - attr_accessor :root - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @name = args[:name] if args.key?(:name) - @root = args[:root] if args.key?(:root) - end - end - - # An object that describes the schema of a MonitoredResource object using a - # type name and a set of labels. For example, the monitored resource - # descriptor for Google Compute Engine VM instances has a type of - # `"gce_instance"` and specifies the use of the labels `"instance_id"` and - # `"zone"` to identify particular VM instances. - # Different APIs can support different monitored resource types. APIs generally - # provide a `list` method that returns the monitored resource descriptors used - # by the API. - class MonitoredResourceDescriptor - include Google::Apis::Core::Hashable - - # Optional. A detailed description of the monitored resource type that might - # be used in documentation. - # Corresponds to the JSON property `description` - # @return [String] - attr_accessor :description - - # Optional. A concise name for the monitored resource type that might be - # displayed in user interfaces. It should be a Title Cased Noun Phrase, - # without any article or other determiners. For example, - # `"Google Cloud SQL Database"`. - # Corresponds to the JSON property `displayName` - # @return [String] - attr_accessor :display_name - - # Required. A set of labels used to describe instances of this monitored - # resource type. For example, an individual Google Cloud SQL database is - # identified by values for the labels `"database_id"` and `"zone"`. - # Corresponds to the JSON property `labels` - # @return [Array] - attr_accessor :labels - - # Optional. The resource name of the monitored resource descriptor: - # `"projects/`project_id`/monitoredResourceDescriptors/`type`"` where - # `type` is the value of the `type` field in this object and - # `project_id` is a project ID that provides API-specific context for - # accessing the type. APIs that do not use project information can use the - # resource name format `"monitoredResourceDescriptors/`type`"`. - # Corresponds to the JSON property `name` - # @return [String] - attr_accessor :name - - # Required. The monitored resource type. For example, the type - # `"cloudsql_database"` represents databases in Google Cloud SQL. - # The maximum length of this value is 256 characters. - # Corresponds to the JSON property `type` - # @return [String] - attr_accessor :type - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @description = args[:description] if args.key?(:description) - @display_name = args[:display_name] if args.key?(:display_name) - @labels = args[:labels] if args.key?(:labels) - @name = args[:name] if args.key?(:name) - @type = args[:type] if args.key?(:type) - end - end - - # Monitoring configuration of the service. - # The example below shows how to configure monitored resources and metrics - # for monitoring. In the example, a monitored resource and two metrics are - # defined. The `library.googleapis.com/book/returned_count` metric is sent - # to both producer and consumer projects, whereas the - # `library.googleapis.com/book/overdue_count` metric is only sent to the - # consumer project. - # monitored_resources: - # - type: library.googleapis.com/branch - # labels: - # - key: /city - # description: The city where the library branch is located in. - # - key: /name - # description: The name of the branch. - # metrics: - # - name: library.googleapis.com/book/returned_count - # metric_kind: DELTA - # value_type: INT64 - # labels: - # - key: /customer_id - # - name: library.googleapis.com/book/overdue_count - # metric_kind: GAUGE - # value_type: INT64 - # labels: - # - key: /customer_id - # monitoring: - # producer_destinations: - # - monitored_resource: library.googleapis.com/branch - # metrics: - # - library.googleapis.com/book/returned_count - # consumer_destinations: - # - monitored_resource: library.googleapis.com/branch - # metrics: - # - library.googleapis.com/book/returned_count - # - library.googleapis.com/book/overdue_count - class Monitoring - include Google::Apis::Core::Hashable - - # Monitoring configurations for sending metrics to the consumer project. - # There can be multiple consumer destinations, each one must have a - # different monitored resource type. A metric can be used in at most - # one consumer destination. - # Corresponds to the JSON property `consumerDestinations` - # @return [Array] - attr_accessor :consumer_destinations - - # Monitoring configurations for sending metrics to the producer project. - # There can be multiple producer destinations, each one must have a - # different monitored resource type. A metric can be used in at most - # one producer destination. - # Corresponds to the JSON property `producerDestinations` - # @return [Array] - attr_accessor :producer_destinations - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations) - @producer_destinations = args[:producer_destinations] if args.key?(:producer_destinations) - end - end - - # Configuration of a specific monitoring destination (the producer project - # or the consumer project). - class MonitoringDestination - include Google::Apis::Core::Hashable - - # Names of the metrics to report to this monitoring destination. - # Each name must be defined in Service.metrics section. - # Corresponds to the JSON property `metrics` - # @return [Array] - attr_accessor :metrics - - # The monitored resource type. The type must be defined in - # Service.monitored_resources section. - # Corresponds to the JSON property `monitoredResource` - # @return [String] - attr_accessor :monitored_resource - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @metrics = args[:metrics] if args.key?(:metrics) - @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource) - end - end - - # OAuth scopes are a way to define data and permissions on data. For example, - # there are scopes defined for "Read-only access to Google Calendar" and - # "Access to Cloud Platform". Users can consent to a scope for an application, - # giving it permission to access that data on their behalf. - # OAuth scope specifications should be fairly coarse grained; a user will need - # to see and understand the text description of what your scope means. - # In most cases: use one or at most two OAuth scopes for an entire family of - # products. If your product has multiple APIs, you should probably be sharing - # the OAuth scope across all of those APIs. - # When you need finer grained OAuth consent screens: talk with your product - # management about how developers will use them in practice. - # Please note that even though each of the canonical scopes is enough for a - # request to be accepted and passed to the backend, a request can still fail - # due to the backend requiring additional scopes or permissions. - class OAuthRequirements - include Google::Apis::Core::Hashable - - # The list of publicly documented OAuth scopes that are allowed access. An - # OAuth token containing any of these scopes will be accepted. - # Example: - # canonical_scopes: https://www.googleapis.com/auth/calendar, - # https://www.googleapis.com/auth/calendar.read - # Corresponds to the JSON property `canonicalScopes` - # @return [String] - attr_accessor :canonical_scopes - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @canonical_scopes = args[:canonical_scopes] if args.key?(:canonical_scopes) - end - end - - # This resource represents a long-running operation that is the result of a - # network API call. - class Operation - include Google::Apis::Core::Hashable - - # If the value is `false`, it means the operation is still in progress. - # If `true`, the operation is completed, and either `error` or `response` is - # available. - # Corresponds to the JSON property `done` - # @return [Boolean] - attr_accessor :done - alias_method :done?, :done - - # The `Status` type defines a logical error model that is suitable for different - # programming environments, including REST APIs and RPC APIs. It is used by - # [gRPC](https://github.com/grpc). The error model is designed to be: - # - Simple to use and understand for most users - # - Flexible enough to meet unexpected needs - # # Overview - # The `Status` message contains three pieces of data: error code, error message, - # and error details. The error code should be an enum value of - # google.rpc.Code, but it may accept additional error codes if needed. The - # error message should be a developer-facing English message that helps - # developers *understand* and *resolve* the error. If a localized user-facing - # error message is needed, put the localized message in the error details or - # localize it in the client. The optional error details may contain arbitrary - # information about the error. There is a predefined set of error detail types - # in the package `google.rpc` that can be used for common error conditions. - # # Language mapping - # The `Status` message is the logical representation of the error model, but it - # is not necessarily the actual wire format. When the `Status` message is - # exposed in different client libraries and different wire protocols, it can be - # mapped differently. For example, it will likely be mapped to some exceptions - # in Java, but more likely mapped to some error codes in C. - # # Other uses - # The error model and the `Status` message can be used in a variety of - # environments, either with or without APIs, to provide a - # consistent developer experience across different environments. - # Example uses of this error model include: - # - Partial errors. If a service needs to return partial errors to the client, - # it may embed the `Status` in the normal response to indicate the partial - # errors. - # - Workflow errors. A typical workflow has multiple steps. Each step may - # have a `Status` message for error reporting. - # - Batch operations. If a client uses batch request and batch response, the - # `Status` message should be used directly inside batch response, one for - # each error sub-response. - # - Asynchronous operations. If an API call embeds asynchronous operation - # results in its response, the status of those operations should be - # represented directly using the `Status` message. - # - Logging. If some API errors are stored in logs, the message `Status` could - # be used directly after any stripping needed for security/privacy reasons. - # Corresponds to the JSON property `error` - # @return [Google::Apis::ServicenetworkingV1::Status] - attr_accessor :error - - # Service-specific metadata associated with the operation. It typically - # contains progress information and common metadata such as create time. - # Some services might not provide such metadata. Any method that returns a - # long-running operation should document the metadata type, if any. - # Corresponds to the JSON property `metadata` - # @return [Hash] - attr_accessor :metadata - - # The server-assigned name, which is only unique within the same service that - # originally returns it. If you use the default HTTP mapping, the - # `name` should have the format of `operations/some/unique/name`. - # Corresponds to the JSON property `name` - # @return [String] - attr_accessor :name - - # The normal response of the operation in case of success. If the original - # method returns no data on success, such as `Delete`, the response is - # `google.protobuf.Empty`. If the original method is standard - # `Get`/`Create`/`Update`, the response should be the resource. For other - # methods, the response should have the type `XxxResponse`, where `Xxx` - # is the original method name. For example, if the original method name - # is `TakeSnapshot()`, the inferred response type is - # `TakeSnapshotResponse`. - # Corresponds to the JSON property `response` - # @return [Hash] - attr_accessor :response - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @done = args[:done] if args.key?(:done) - @error = args[:error] if args.key?(:error) - @metadata = args[:metadata] if args.key?(:metadata) - @name = args[:name] if args.key?(:name) - @response = args[:response] if args.key?(:response) - end - end - - # A protocol buffer option, which can be attached to a message, field, - # enumeration, etc. - class Option - include Google::Apis::Core::Hashable - - # The option's name. For protobuf built-in options (options defined in - # descriptor.proto), this is the short name. For example, `"map_entry"`. - # For custom options, it should be the fully-qualified name. For example, - # `"google.api.http"`. - # Corresponds to the JSON property `name` - # @return [String] - attr_accessor :name - - # The option's value packed in an Any message. If the value is a primitive, - # the corresponding wrapper type defined in google/protobuf/wrappers.proto - # should be used. If the value is an enum, it should be stored as an int32 - # value using the google.protobuf.Int32Value type. - # Corresponds to the JSON property `value` - # @return [Hash] - attr_accessor :value - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @name = args[:name] if args.key?(:name) - @value = args[:value] if args.key?(:value) - end - end - - # Represents a documentation page. A page can contain subpages to represent - # nested documentation set structure. - class Page - include Google::Apis::Core::Hashable - - # The Markdown content of the page. You can use (== include `path` ==&# - # 41; - # to include content from a Markdown file. - # Corresponds to the JSON property `content` - # @return [String] - attr_accessor :content - - # The name of the page. It will be used as an identity of the page to - # generate URI of the page, text of the link to this page in navigation, - # etc. The full page name (start from the root page name to this page - # concatenated with `.`) can be used as reference to the page in your - # documentation. For example: - #
pages:
-        # - name: Tutorial
-        # content: (== include tutorial.md ==)
-        # subpages:
-        # - name: Java
-        # content: (== include tutorial_java.md ==)
-        # 
- # You can reference `Java` page using Markdown reference link syntax: - # `Java`. - # Corresponds to the JSON property `name` - # @return [String] - attr_accessor :name - - # Subpages of this page. The order of subpages specified here will be - # honored in the generated docset. - # Corresponds to the JSON property `subpages` - # @return [Array] - attr_accessor :subpages - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @content = args[:content] if args.key?(:content) - @name = args[:name] if args.key?(:name) - @subpages = args[:subpages] if args.key?(:subpages) - end - end - - # Quota configuration helps to achieve fairness and budgeting in service - # usage. - # The quota configuration works this way: - # - The service configuration defines a set of metrics. - # - For API calls, the quota.metric_rules maps methods to metrics with - # corresponding costs. - # - The quota.limits defines limits on the metrics, which will be used for - # quota checks at runtime. - # An example quota configuration in yaml format: - # quota: - # limits: - # - name: apiWriteQpsPerProject - # metric: library.googleapis.com/write_calls - # unit: "1/min/`project`" # rate limit for consumer projects - # values: - # STANDARD: 10000 - # # The metric rules bind all methods to the read_calls metric, - # # except for the UpdateBook and DeleteBook methods. These two methods - # # are mapped to the write_calls metric, with the UpdateBook method - # # consuming at twice rate as the DeleteBook method. - # metric_rules: - # - selector: "*" - # metric_costs: - # library.googleapis.com/read_calls: 1 - # - selector: google.example.library.v1.LibraryService.UpdateBook - # metric_costs: - # library.googleapis.com/write_calls: 2 - # - selector: google.example.library.v1.LibraryService.DeleteBook - # metric_costs: - # library.googleapis.com/write_calls: 1 - # Corresponding Metric definition: - # metrics: - # - name: library.googleapis.com/read_calls - # display_name: Read requests - # metric_kind: DELTA - # value_type: INT64 - # - name: library.googleapis.com/write_calls - # display_name: Write requests - # metric_kind: DELTA - # value_type: INT64 - class Quota - include Google::Apis::Core::Hashable - - # List of `QuotaLimit` definitions for the service. - # Corresponds to the JSON property `limits` - # @return [Array] - attr_accessor :limits - - # List of `MetricRule` definitions, each one mapping a selected method to one - # or more metrics. - # Corresponds to the JSON property `metricRules` - # @return [Array] - attr_accessor :metric_rules - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @limits = args[:limits] if args.key?(:limits) - @metric_rules = args[:metric_rules] if args.key?(:metric_rules) - end - end - - # `QuotaLimit` defines a specific limit that applies over a specified duration - # for a limit type. There can be at most one limit for a duration and limit - # type combination defined within a `QuotaGroup`. - class QuotaLimit - include Google::Apis::Core::Hashable - - # Default number of tokens that can be consumed during the specified - # duration. This is the number of tokens assigned when a client - # application developer activates the service for his/her project. - # Specifying a value of 0 will block all requests. This can be used if you - # are provisioning quota to selected consumers and blocking others. - # Similarly, a value of -1 will indicate an unlimited quota. No other - # negative values are allowed. - # Used by group-based quotas only. - # Corresponds to the JSON property `defaultLimit` - # @return [Fixnum] - attr_accessor :default_limit - - # Optional. User-visible, extended description for this quota limit. - # Should be used only when more context is needed to understand this limit - # than provided by the limit's display name (see: `display_name`). - # Corresponds to the JSON property `description` - # @return [String] - attr_accessor :description - - # User-visible display name for this limit. - # Optional. If not set, the UI will provide a default display name based on - # the quota configuration. This field can be used to override the default - # display name generated from the configuration. - # Corresponds to the JSON property `displayName` - # @return [String] - attr_accessor :display_name - - # Duration of this limit in textual notation. Example: "100s", "24h", "1d". - # For duration longer than a day, only multiple of days is supported. We - # support only "100s" and "1d" for now. Additional support will be added in - # the future. "0" indicates indefinite duration. - # Used by group-based quotas only. - # Corresponds to the JSON property `duration` - # @return [String] - attr_accessor :duration - - # Free tier value displayed in the Developers Console for this limit. - # The free tier is the number of tokens that will be subtracted from the - # billed amount when billing is enabled. - # This field can only be set on a limit with duration "1d", in a billable - # group; it is invalid on any other limit. If this field is not set, it - # defaults to 0, indicating that there is no free tier for this service. - # Used by group-based quotas only. - # Corresponds to the JSON property `freeTier` - # @return [Fixnum] - attr_accessor :free_tier - - # Maximum number of tokens that can be consumed during the specified - # duration. Client application developers can override the default limit up - # to this maximum. If specified, this value cannot be set to a value less - # than the default limit. If not specified, it is set to the default limit. - # To allow clients to apply overrides with no upper bound, set this to -1, - # indicating unlimited maximum quota. - # Used by group-based quotas only. - # Corresponds to the JSON property `maxLimit` - # @return [Fixnum] - attr_accessor :max_limit - - # The name of the metric this quota limit applies to. The quota limits with - # the same metric will be checked together during runtime. The metric must be - # defined within the service config. - # Corresponds to the JSON property `metric` - # @return [String] - attr_accessor :metric - - # Name of the quota limit. - # The name must be provided, and it must be unique within the service. The - # name can only include alphanumeric characters as well as '-'. - # The maximum length of the limit name is 64 characters. - # Corresponds to the JSON property `name` - # @return [String] - attr_accessor :name - - # Specify the unit of the quota limit. It uses the same syntax as - # Metric.unit. The supported unit kinds are determined by the quota - # backend system. - # Here are some examples: - # * "1/min/`project`" for quota per minute per project. - # Note: the order of unit components is insignificant. - # The "1" at the beginning is required to follow the metric unit syntax. - # Corresponds to the JSON property `unit` - # @return [String] - attr_accessor :unit - - # Tiered limit values. You must specify this as a key:value pair, with an - # integer value that is the maximum number of requests allowed for the - # specified unit. Currently only STANDARD is supported. - # Corresponds to the JSON property `values` - # @return [Hash] - attr_accessor :values - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @default_limit = args[:default_limit] if args.key?(:default_limit) - @description = args[:description] if args.key?(:description) - @display_name = args[:display_name] if args.key?(:display_name) - @duration = args[:duration] if args.key?(:duration) - @free_tier = args[:free_tier] if args.key?(:free_tier) - @max_limit = args[:max_limit] if args.key?(:max_limit) - @metric = args[:metric] if args.key?(:metric) - @name = args[:name] if args.key?(:name) - @unit = args[:unit] if args.key?(:unit) - @values = args[:values] if args.key?(:values) - end - end - - # `Service` is the root object of Google service configuration schema. It - # describes basic information about a service, such as the name and the - # title, and delegates other aspects to sub-sections. Each sub-section is - # either a proto message or a repeated proto message that configures a - # specific aspect, such as auth. See each proto message definition for details. - # Example: - # type: google.api.Service - # config_version: 3 - # name: calendar.googleapis.com - # title: Google Calendar API - # apis: - # - name: google.calendar.v3.Calendar - # authentication: - # providers: - # - id: google_calendar_auth - # jwks_uri: https://www.googleapis.com/oauth2/v1/certs - # issuer: https://securetoken.google.com - # rules: - # - selector: "*" - # requirements: - # provider_id: google_calendar_auth - class Service - include Google::Apis::Core::Hashable - - # A list of API interfaces exported by this service. Only the `name` field - # of the google.protobuf.Api needs to be provided by the configuration - # author, as the remaining fields will be derived from the IDL during the - # normalization process. It is an error to specify an API interface here - # which cannot be resolved against the associated IDL files. - # Corresponds to the JSON property `apis` - # @return [Array] - attr_accessor :apis - - # `Authentication` defines the authentication configuration for an API. - # Example for an API targeted for external use: - # name: calendar.googleapis.com - # authentication: - # providers: - # - id: google_calendar_auth - # jwks_uri: https://www.googleapis.com/oauth2/v1/certs - # issuer: https://securetoken.google.com - # rules: - # - selector: "*" - # requirements: - # provider_id: google_calendar_auth - # Corresponds to the JSON property `authentication` - # @return [Google::Apis::ServicenetworkingV1::Authentication] - attr_accessor :authentication - - # `Backend` defines the backend configuration for a service. - # Corresponds to the JSON property `backend` - # @return [Google::Apis::ServicenetworkingV1::Backend] - attr_accessor :backend - - # Billing related configuration of the service. - # The following example shows how to configure monitored resources and metrics - # for billing: - # monitored_resources: - # - type: library.googleapis.com/branch - # labels: - # - key: /city - # description: The city where the library branch is located in. - # - key: /name - # description: The name of the branch. - # metrics: - # - name: library.googleapis.com/book/borrowed_count - # metric_kind: DELTA - # value_type: INT64 - # billing: - # consumer_destinations: - # - monitored_resource: library.googleapis.com/branch - # metrics: - # - library.googleapis.com/book/borrowed_count - # Corresponds to the JSON property `billing` - # @return [Google::Apis::ServicenetworkingV1::Billing] - attr_accessor :billing - - # The semantic version of the service configuration. The config version - # affects the interpretation of the service configuration. For example, - # certain features are enabled by default for certain config versions. - # The latest config version is `3`. - # Corresponds to the JSON property `configVersion` - # @return [Fixnum] - attr_accessor :config_version - - # `Context` defines which contexts an API requests. - # Example: - # context: - # rules: - # - selector: "*" - # requested: - # - google.rpc.context.ProjectContext - # - google.rpc.context.OriginContext - # The above specifies that all methods in the API request - # `google.rpc.context.ProjectContext` and - # `google.rpc.context.OriginContext`. - # Available context types are defined in package - # `google.rpc.context`. - # This also provides mechanism to whitelist any protobuf message extension that - # can be sent in grpc metadata using “x-goog-ext--bin” and - # “x-goog-ext--jspb” format. For example, list any service - # specific protobuf types that can appear in grpc metadata as follows in your - # yaml file: - # Example: - # context: - # rules: - # - selector: "google.example.library.v1.LibraryService.CreateBook" - # allowed_request_extensions: - # - google.foo.v1.NewExtension - # allowed_response_extensions: - # - google.foo.v1.NewExtension - # You can also specify extension ID instead of fully qualified extension name - # here. - # Corresponds to the JSON property `context` - # @return [Google::Apis::ServicenetworkingV1::Context] - attr_accessor :context - - # Selects and configures the service controller used by the service. The - # service controller handles features like abuse, quota, billing, logging, - # monitoring, etc. - # Corresponds to the JSON property `control` - # @return [Google::Apis::ServicenetworkingV1::Control] - attr_accessor :control - - # Customize service error responses. For example, list any service - # specific protobuf types that can appear in error detail lists of - # error responses. - # Example: - # custom_error: - # types: - # - google.foo.v1.CustomError - # - google.foo.v1.AnotherError - # Corresponds to the JSON property `customError` - # @return [Google::Apis::ServicenetworkingV1::CustomError] - attr_accessor :custom_error - - # `Documentation` provides the information for describing a service. - # Example: - #
documentation:
-        # summary: >
-        # The Google Calendar API gives access
-        # to most calendar features.
-        # pages:
-        # - name: Overview
-        # content: (== include google/foo/overview.md ==)
-        # - name: Tutorial
-        # content: (== include google/foo/tutorial.md ==)
-        # subpages;
-        # - name: Java
-        # content: (== include google/foo/tutorial_java.md ==)
-        # rules:
-        # - selector: google.calendar.Calendar.Get
-        # description: >
-        # ...
-        # - selector: google.calendar.Calendar.Put
-        # description: >
-        # ...
-        # 
- # Documentation is provided in markdown syntax. In addition to - # standard markdown features, definition lists, tables and fenced - # code blocks are supported. Section headers can be provided and are - # interpreted relative to the section nesting of the context where - # a documentation fragment is embedded. - # Documentation from the IDL is merged with documentation defined - # via the config at normalization time, where documentation provided - # by config rules overrides IDL provided. - # A number of constructs specific to the API platform are supported - # in documentation text. - # In order to reference a proto element, the following - # notation can be used: - #
[fully.qualified.proto.name][]
- # To override the display text used for the link, this can be used: - #
[display text][fully.qualified.proto.name]
- # Text can be excluded from doc using the following notation: - #
(-- internal comment --)
- # A few directives are available in documentation. Note that - # directives must appear on a single line to be properly - # identified. The `include` directive includes a markdown file from - # an external source: - #
(== include path/to/file ==)
- # The `resource_for` directive marks a message to be the resource of - # a collection in REST view. If it is not specified, tools attempt - # to infer the resource from the operations in a collection: - #
(== resource_for v1.shelves.books ==)
- # The directive `suppress_warning` does not directly affect documentation - # and is documented together with service config validation. - # Corresponds to the JSON property `documentation` - # @return [Google::Apis::ServicenetworkingV1::Documentation] - attr_accessor :documentation - - # Configuration for network endpoints. If this is empty, then an endpoint - # with the same name as the service is automatically generated to service all - # defined APIs. - # Corresponds to the JSON property `endpoints` - # @return [Array] - attr_accessor :endpoints - - # A list of all enum types included in this API service. Enums - # referenced directly or indirectly by the `apis` are automatically - # included. Enums which are not referenced but shall be included - # should be listed here by name. Example: - # enums: - # - name: google.someapi.v1.SomeEnum - # Corresponds to the JSON property `enums` - # @return [Array] - attr_accessor :enums - - # Experimental service configuration. These configuration options can - # only be used by whitelisted users. - # Corresponds to the JSON property `experimental` - # @return [Google::Apis::ServicenetworkingV1::Experimental] - attr_accessor :experimental - - # Defines the HTTP configuration for an API service. It contains a list of - # HttpRule, each specifying the mapping of an RPC method - # to one or more HTTP REST API methods. - # Corresponds to the JSON property `http` - # @return [Google::Apis::ServicenetworkingV1::Http] - attr_accessor :http - - # A unique ID for a specific instance of this message, typically assigned - # by the client for tracking purpose. If empty, the server may choose to - # generate one instead. Must be no longer than 60 characters. - # Corresponds to the JSON property `id` - # @return [String] - attr_accessor :id - - # Logging configuration of the service. - # The following example shows how to configure logs to be sent to the - # producer and consumer projects. In the example, the `activity_history` - # log is sent to both the producer and consumer projects, whereas the - # `purchase_history` log is only sent to the producer project. - # monitored_resources: - # - type: library.googleapis.com/branch - # labels: - # - key: /city - # description: The city where the library branch is located in. - # - key: /name - # description: The name of the branch. - # logs: - # - name: activity_history - # labels: - # - key: /customer_id - # - name: purchase_history - # logging: - # producer_destinations: - # - monitored_resource: library.googleapis.com/branch - # logs: - # - activity_history - # - purchase_history - # consumer_destinations: - # - monitored_resource: library.googleapis.com/branch - # logs: - # - activity_history - # Corresponds to the JSON property `logging` - # @return [Google::Apis::ServicenetworkingV1::Logging] - attr_accessor :logging - - # Defines the logs used by this service. - # Corresponds to the JSON property `logs` - # @return [Array] - attr_accessor :logs - - # Defines the metrics used by this service. - # Corresponds to the JSON property `metrics` - # @return [Array] - attr_accessor :metrics - - # Defines the monitored resources used by this service. This is required - # by the Service.monitoring and Service.logging configurations. - # Corresponds to the JSON property `monitoredResources` - # @return [Array] - attr_accessor :monitored_resources - - # Monitoring configuration of the service. - # The example below shows how to configure monitored resources and metrics - # for monitoring. In the example, a monitored resource and two metrics are - # defined. The `library.googleapis.com/book/returned_count` metric is sent - # to both producer and consumer projects, whereas the - # `library.googleapis.com/book/overdue_count` metric is only sent to the - # consumer project. - # monitored_resources: - # - type: library.googleapis.com/branch - # labels: - # - key: /city - # description: The city where the library branch is located in. - # - key: /name - # description: The name of the branch. - # metrics: - # - name: library.googleapis.com/book/returned_count - # metric_kind: DELTA - # value_type: INT64 - # labels: - # - key: /customer_id - # - name: library.googleapis.com/book/overdue_count - # metric_kind: GAUGE - # value_type: INT64 - # labels: - # - key: /customer_id - # monitoring: - # producer_destinations: - # - monitored_resource: library.googleapis.com/branch - # metrics: - # - library.googleapis.com/book/returned_count - # consumer_destinations: - # - monitored_resource: library.googleapis.com/branch - # metrics: - # - library.googleapis.com/book/returned_count - # - library.googleapis.com/book/overdue_count - # Corresponds to the JSON property `monitoring` - # @return [Google::Apis::ServicenetworkingV1::Monitoring] - attr_accessor :monitoring - - # The DNS address at which this service is available, - # e.g. `calendar.googleapis.com`. - # Corresponds to the JSON property `name` - # @return [String] - attr_accessor :name - - # The Google project that owns this service. - # Corresponds to the JSON property `producerProjectId` - # @return [String] - attr_accessor :producer_project_id - - # Quota configuration helps to achieve fairness and budgeting in service - # usage. - # The quota configuration works this way: - # - The service configuration defines a set of metrics. - # - For API calls, the quota.metric_rules maps methods to metrics with - # corresponding costs. - # - The quota.limits defines limits on the metrics, which will be used for - # quota checks at runtime. - # An example quota configuration in yaml format: - # quota: - # limits: - # - name: apiWriteQpsPerProject - # metric: library.googleapis.com/write_calls - # unit: "1/min/`project`" # rate limit for consumer projects - # values: - # STANDARD: 10000 - # # The metric rules bind all methods to the read_calls metric, - # # except for the UpdateBook and DeleteBook methods. These two methods - # # are mapped to the write_calls metric, with the UpdateBook method - # # consuming at twice rate as the DeleteBook method. - # metric_rules: - # - selector: "*" - # metric_costs: - # library.googleapis.com/read_calls: 1 - # - selector: google.example.library.v1.LibraryService.UpdateBook - # metric_costs: - # library.googleapis.com/write_calls: 2 - # - selector: google.example.library.v1.LibraryService.DeleteBook - # metric_costs: - # library.googleapis.com/write_calls: 1 - # Corresponding Metric definition: - # metrics: - # - name: library.googleapis.com/read_calls - # display_name: Read requests - # metric_kind: DELTA - # value_type: INT64 - # - name: library.googleapis.com/write_calls - # display_name: Write requests - # metric_kind: DELTA - # value_type: INT64 - # Corresponds to the JSON property `quota` - # @return [Google::Apis::ServicenetworkingV1::Quota] - attr_accessor :quota - - # Source information used to create a Service Config - # Corresponds to the JSON property `sourceInfo` - # @return [Google::Apis::ServicenetworkingV1::SourceInfo] - attr_accessor :source_info - - # ### System parameter configuration - # A system parameter is a special kind of parameter defined by the API - # system, not by an individual API. It is typically mapped to an HTTP header - # and/or a URL query parameter. This configuration specifies which methods - # change the names of the system parameters. - # Corresponds to the JSON property `systemParameters` - # @return [Google::Apis::ServicenetworkingV1::SystemParameters] - attr_accessor :system_parameters - - # A list of all proto message types included in this API service. - # It serves similar purpose as [google.api.Service.types], except that - # these types are not needed by user-defined APIs. Therefore, they will not - # show up in the generated discovery doc. This field should only be used - # to define system APIs in ESF. - # Corresponds to the JSON property `systemTypes` - # @return [Array] - attr_accessor :system_types - - # The product title for this service. - # Corresponds to the JSON property `title` - # @return [String] - attr_accessor :title - - # A list of all proto message types included in this API service. - # Types referenced directly or indirectly by the `apis` are - # automatically included. Messages which are not referenced but - # shall be included, such as types used by the `google.protobuf.Any` type, - # should be listed here by name. Example: - # types: - # - name: google.protobuf.Int32 - # Corresponds to the JSON property `types` - # @return [Array] - attr_accessor :types - - # Configuration controlling usage of a service. - # Corresponds to the JSON property `usage` - # @return [Google::Apis::ServicenetworkingV1::Usage] - attr_accessor :usage - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @apis = args[:apis] if args.key?(:apis) - @authentication = args[:authentication] if args.key?(:authentication) - @backend = args[:backend] if args.key?(:backend) - @billing = args[:billing] if args.key?(:billing) - @config_version = args[:config_version] if args.key?(:config_version) - @context = args[:context] if args.key?(:context) - @control = args[:control] if args.key?(:control) - @custom_error = args[:custom_error] if args.key?(:custom_error) - @documentation = args[:documentation] if args.key?(:documentation) - @endpoints = args[:endpoints] if args.key?(:endpoints) - @enums = args[:enums] if args.key?(:enums) - @experimental = args[:experimental] if args.key?(:experimental) - @http = args[:http] if args.key?(:http) - @id = args[:id] if args.key?(:id) - @logging = args[:logging] if args.key?(:logging) - @logs = args[:logs] if args.key?(:logs) - @metrics = args[:metrics] if args.key?(:metrics) - @monitored_resources = args[:monitored_resources] if args.key?(:monitored_resources) - @monitoring = args[:monitoring] if args.key?(:monitoring) - @name = args[:name] if args.key?(:name) - @producer_project_id = args[:producer_project_id] if args.key?(:producer_project_id) - @quota = args[:quota] if args.key?(:quota) - @source_info = args[:source_info] if args.key?(:source_info) - @system_parameters = args[:system_parameters] if args.key?(:system_parameters) - @system_types = args[:system_types] if args.key?(:system_types) - @title = args[:title] if args.key?(:title) - @types = args[:types] if args.key?(:types) - @usage = args[:usage] if args.key?(:usage) - end - end - - # `SourceContext` represents information about the source of a - # protobuf element, like the file in which it is defined. - class SourceContext - include Google::Apis::Core::Hashable - - # The path-qualified name of the .proto file that contained the associated - # protobuf element. For example: `"google/protobuf/source_context.proto"`. - # Corresponds to the JSON property `fileName` - # @return [String] - attr_accessor :file_name - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @file_name = args[:file_name] if args.key?(:file_name) - end - end - - # Source information used to create a Service Config - class SourceInfo - include Google::Apis::Core::Hashable - - # All files used during config generation. - # Corresponds to the JSON property `sourceFiles` - # @return [Array>] - attr_accessor :source_files - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @source_files = args[:source_files] if args.key?(:source_files) - end - end - - # The `Status` type defines a logical error model that is suitable for different - # programming environments, including REST APIs and RPC APIs. It is used by - # [gRPC](https://github.com/grpc). The error model is designed to be: - # - Simple to use and understand for most users - # - Flexible enough to meet unexpected needs - # # Overview - # The `Status` message contains three pieces of data: error code, error message, - # and error details. The error code should be an enum value of - # google.rpc.Code, but it may accept additional error codes if needed. The - # error message should be a developer-facing English message that helps - # developers *understand* and *resolve* the error. If a localized user-facing - # error message is needed, put the localized message in the error details or - # localize it in the client. The optional error details may contain arbitrary - # information about the error. There is a predefined set of error detail types - # in the package `google.rpc` that can be used for common error conditions. - # # Language mapping - # The `Status` message is the logical representation of the error model, but it - # is not necessarily the actual wire format. When the `Status` message is - # exposed in different client libraries and different wire protocols, it can be - # mapped differently. For example, it will likely be mapped to some exceptions - # in Java, but more likely mapped to some error codes in C. - # # Other uses - # The error model and the `Status` message can be used in a variety of - # environments, either with or without APIs, to provide a - # consistent developer experience across different environments. - # Example uses of this error model include: - # - Partial errors. If a service needs to return partial errors to the client, - # it may embed the `Status` in the normal response to indicate the partial - # errors. - # - Workflow errors. A typical workflow has multiple steps. Each step may - # have a `Status` message for error reporting. - # - Batch operations. If a client uses batch request and batch response, the - # `Status` message should be used directly inside batch response, one for - # each error sub-response. - # - Asynchronous operations. If an API call embeds asynchronous operation - # results in its response, the status of those operations should be - # represented directly using the `Status` message. - # - Logging. If some API errors are stored in logs, the message `Status` could - # be used directly after any stripping needed for security/privacy reasons. - class Status - include Google::Apis::Core::Hashable - - # The status code, which should be an enum value of google.rpc.Code. - # Corresponds to the JSON property `code` - # @return [Fixnum] - attr_accessor :code - - # A list of messages that carry the error details. There is a common set of - # message types for APIs to use. - # Corresponds to the JSON property `details` - # @return [Array>] - attr_accessor :details - - # A developer-facing error message, which should be in English. Any - # user-facing error message should be localized and sent in the - # google.rpc.Status.details field, or localized by the client. - # Corresponds to the JSON property `message` - # @return [String] - attr_accessor :message - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @code = args[:code] if args.key?(:code) - @details = args[:details] if args.key?(:details) - @message = args[:message] if args.key?(:message) - end - end - - # Message returning the created service subnetwork. - class Subnetwork - include Google::Apis::Core::Hashable - - # Subnetwork CIDR range in "10.x.x.x/y" format. - # Corresponds to the JSON property `ipCidrRange` - # @return [String] - attr_accessor :ip_cidr_range - - # Subnetwork name. - # See https://cloud.google.com/compute/docs/vpc/ - # 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) - @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range) - @name = args[:name] if args.key?(:name) - end - end - - # Define a parameter's name and location. The parameter may be passed as either - # an HTTP header or a URL query parameter, and if both are passed the behavior - # is implementation-dependent. - class SystemParameter - include Google::Apis::Core::Hashable - - # Define the HTTP header name to use for the parameter. It is case - # insensitive. - # Corresponds to the JSON property `httpHeader` - # @return [String] - attr_accessor :http_header - - # Define the name of the parameter, such as "api_key" . It is case sensitive. - # Corresponds to the JSON property `name` - # @return [String] - attr_accessor :name - - # Define the URL query parameter name to use for the parameter. It is case - # sensitive. - # Corresponds to the JSON property `urlQueryParameter` - # @return [String] - attr_accessor :url_query_parameter - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @http_header = args[:http_header] if args.key?(:http_header) - @name = args[:name] if args.key?(:name) - @url_query_parameter = args[:url_query_parameter] if args.key?(:url_query_parameter) - end - end - - # Define a system parameter rule mapping system parameter definitions to - # methods. - class SystemParameterRule - include Google::Apis::Core::Hashable - - # Define parameters. Multiple names may be defined for a parameter. - # For a given method call, only one of them should be used. If multiple - # names are used the behavior is implementation-dependent. - # If none of the specified names are present the behavior is - # parameter-dependent. - # Corresponds to the JSON property `parameters` - # @return [Array] - attr_accessor :parameters - - # Selects the methods to which this rule applies. Use '*' to indicate all - # methods in all APIs. - # Refer to selector for syntax details. - # Corresponds to the JSON property `selector` - # @return [String] - attr_accessor :selector - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @parameters = args[:parameters] if args.key?(:parameters) - @selector = args[:selector] if args.key?(:selector) - end - end - - # ### System parameter configuration - # A system parameter is a special kind of parameter defined by the API - # system, not by an individual API. It is typically mapped to an HTTP header - # and/or a URL query parameter. This configuration specifies which methods - # change the names of the system parameters. - class SystemParameters - include Google::Apis::Core::Hashable - - # Define system parameters. - # The parameters defined here will override the default parameters - # implemented by the system. If this field is missing from the service - # config, default system parameters will be used. Default system parameters - # and names is implementation-dependent. - # Example: define api key for all methods - # system_parameters - # rules: - # - selector: "*" - # parameters: - # - name: api_key - # url_query_parameter: api_key - # Example: define 2 api key names for a specific method. - # system_parameters - # rules: - # - selector: "/ListShelves" - # parameters: - # - name: api_key - # http_header: Api-Key1 - # - name: api_key - # http_header: Api-Key2 - # **NOTE:** All service configuration rules follow "last one wins" order. - # Corresponds to the JSON property `rules` - # @return [Array] - attr_accessor :rules - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @rules = args[:rules] if args.key?(:rules) - end - end - - # A protocol buffer message type. - class Type - include Google::Apis::Core::Hashable - - # The list of fields. - # Corresponds to the JSON property `fields` - # @return [Array] - attr_accessor :fields - - # The fully qualified message name. - # Corresponds to the JSON property `name` - # @return [String] - attr_accessor :name - - # The list of types appearing in `oneof` definitions in this type. - # Corresponds to the JSON property `oneofs` - # @return [Array] - attr_accessor :oneofs - - # The protocol buffer options. - # Corresponds to the JSON property `options` - # @return [Array] - attr_accessor :options - - # `SourceContext` represents information about the source of a - # protobuf element, like the file in which it is defined. - # Corresponds to the JSON property `sourceContext` - # @return [Google::Apis::ServicenetworkingV1::SourceContext] - attr_accessor :source_context - - # The source syntax. - # Corresponds to the JSON property `syntax` - # @return [String] - attr_accessor :syntax - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @fields = args[:fields] if args.key?(:fields) - @name = args[:name] if args.key?(:name) - @oneofs = args[:oneofs] if args.key?(:oneofs) - @options = args[:options] if args.key?(:options) - @source_context = args[:source_context] if args.key?(:source_context) - @syntax = args[:syntax] if args.key?(:syntax) - end - end - - # Configuration controlling usage of a service. - class Usage - include Google::Apis::Core::Hashable - - # The full resource name of a channel used for sending notifications to the - # service producer. - # Google Service Management currently only supports - # [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification - # channel. To use Google Cloud Pub/Sub as the channel, this must be the name - # of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format - # documented in https://cloud.google.com/pubsub/docs/overview. - # Corresponds to the JSON property `producerNotificationChannel` - # @return [String] - attr_accessor :producer_notification_channel - - # Requirements that must be satisfied before a consumer project can use the - # service. Each requirement is of the form /; - # for example 'serviceusage.googleapis.com/billing-enabled'. - # Corresponds to the JSON property `requirements` - # @return [Array] - attr_accessor :requirements - - # A list of usage rules that apply to individual API methods. - # **NOTE:** All service configuration rules follow "last one wins" order. - # Corresponds to the JSON property `rules` - # @return [Array] - attr_accessor :rules - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @producer_notification_channel = args[:producer_notification_channel] if args.key?(:producer_notification_channel) - @requirements = args[:requirements] if args.key?(:requirements) - @rules = args[:rules] if args.key?(:rules) - end - end - - # Usage configuration rules for the service. - # NOTE: Under development. - # Use this rule to configure unregistered calls for the service. Unregistered - # calls are calls that do not contain consumer project identity. - # (Example: calls that do not contain an API key). - # By default, API methods do not allow unregistered calls, and each method call - # must be identified by a consumer project identity. Use this rule to - # allow/disallow unregistered calls. - # Example of an API that wants to allow unregistered calls for entire service. - # usage: - # rules: - # - selector: "*" - # allow_unregistered_calls: true - # Example of a method that wants to allow unregistered calls. - # usage: - # rules: - # - selector: "google.example.library.v1.LibraryService.CreateBook" - # allow_unregistered_calls: true - class UsageRule - include Google::Apis::Core::Hashable - - # If true, the selected method allows unregistered calls, e.g. calls - # that don't identify any user or application. - # Corresponds to the JSON property `allowUnregisteredCalls` - # @return [Boolean] - attr_accessor :allow_unregistered_calls - alias_method :allow_unregistered_calls?, :allow_unregistered_calls - - # Selects the methods to which this rule applies. Use '*' to indicate all - # methods in all APIs. - # Refer to selector for syntax details. - # Corresponds to the JSON property `selector` - # @return [String] - attr_accessor :selector - - # If true, the selected method should skip service control and the control - # plane features, such as quota and billing, will not be available. - # This flag is used by Google Cloud Endpoints to bypass checks for internal - # methods, such as service health check methods. - # Corresponds to the JSON property `skipServiceControl` - # @return [Boolean] - attr_accessor :skip_service_control - alias_method :skip_service_control?, :skip_service_control - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @allow_unregistered_calls = args[:allow_unregistered_calls] if args.key?(:allow_unregistered_calls) - @selector = args[:selector] if args.key?(:selector) - @skip_service_control = args[:skip_service_control] if args.key?(:skip_service_control) - end - end - end - end -end diff --git a/generated/google/apis/servicenetworking_v1/representations.rb b/generated/google/apis/servicenetworking_v1/representations.rb deleted file mode 100644 index d128a1aae..000000000 --- a/generated/google/apis/servicenetworking_v1/representations.rb +++ /dev/null @@ -1,997 +0,0 @@ -# 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 ServicenetworkingV1 - - class AddSubnetworkResponse - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Api - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class AuthProvider - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class AuthRequirement - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Authentication - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class AuthenticationRule - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class AuthorizationConfig - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Backend - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class BackendRule - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Billing - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class BillingDestination - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class CancelOperationRequest - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Context - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class ContextRule - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Control - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class CustomError - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class CustomErrorRule - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class CustomHttpPattern - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Documentation - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class DocumentationRule - 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 Endpoint - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Enum - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class EnumValue - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Experimental - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Field - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Http - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class HttpRule - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class LabelDescriptor - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class ListOperationsResponse - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class LogDescriptor - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Logging - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class LoggingDestination - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class MethodProp - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class MetricDescriptor - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class MetricDescriptorMetadata - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class MetricRule - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Mixin - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class MonitoredResourceDescriptor - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Monitoring - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class MonitoringDestination - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class OAuthRequirements - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Operation - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Option - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Page - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Quota - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class QuotaLimit - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Service - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class SourceContext - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class SourceInfo - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Status - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Subnetwork - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class SystemParameter - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class SystemParameterRule - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class SystemParameters - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Type - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class Usage - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class UsageRule - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - - class AddSubnetworkResponse - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :ip_cidr_range, as: 'ipCidrRange' - property :name, as: 'name' - end - end - - class Api - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :methods_prop, as: 'methods', class: Google::Apis::ServicenetworkingV1::MethodProp, decorator: Google::Apis::ServicenetworkingV1::MethodProp::Representation - - collection :mixins, as: 'mixins', class: Google::Apis::ServicenetworkingV1::Mixin, decorator: Google::Apis::ServicenetworkingV1::Mixin::Representation - - property :name, as: 'name' - collection :options, as: 'options', class: Google::Apis::ServicenetworkingV1::Option, decorator: Google::Apis::ServicenetworkingV1::Option::Representation - - property :source_context, as: 'sourceContext', class: Google::Apis::ServicenetworkingV1::SourceContext, decorator: Google::Apis::ServicenetworkingV1::SourceContext::Representation - - property :syntax, as: 'syntax' - property :version, as: 'version' - end - end - - class AuthProvider - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :audiences, as: 'audiences' - property :authorization_url, as: 'authorizationUrl' - property :id, as: 'id' - property :issuer, as: 'issuer' - property :jwks_uri, as: 'jwksUri' - end - end - - class AuthRequirement - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :audiences, as: 'audiences' - property :provider_id, as: 'providerId' - end - end - - class Authentication - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :providers, as: 'providers', class: Google::Apis::ServicenetworkingV1::AuthProvider, decorator: Google::Apis::ServicenetworkingV1::AuthProvider::Representation - - collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1::AuthenticationRule, decorator: Google::Apis::ServicenetworkingV1::AuthenticationRule::Representation - - end - end - - class AuthenticationRule - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :allow_without_credential, as: 'allowWithoutCredential' - property :oauth, as: 'oauth', class: Google::Apis::ServicenetworkingV1::OAuthRequirements, decorator: Google::Apis::ServicenetworkingV1::OAuthRequirements::Representation - - collection :requirements, as: 'requirements', class: Google::Apis::ServicenetworkingV1::AuthRequirement, decorator: Google::Apis::ServicenetworkingV1::AuthRequirement::Representation - - property :selector, as: 'selector' - end - end - - class AuthorizationConfig - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :provider, as: 'provider' - end - end - - class Backend - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1::BackendRule, decorator: Google::Apis::ServicenetworkingV1::BackendRule::Representation - - end - end - - class BackendRule - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :address, as: 'address' - property :deadline, as: 'deadline' - property :min_deadline, as: 'minDeadline' - property :selector, as: 'selector' - end - end - - class Billing - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :consumer_destinations, as: 'consumerDestinations', class: Google::Apis::ServicenetworkingV1::BillingDestination, decorator: Google::Apis::ServicenetworkingV1::BillingDestination::Representation - - end - end - - class BillingDestination - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :metrics, as: 'metrics' - property :monitored_resource, as: 'monitoredResource' - end - end - - class CancelOperationRequest - # @private - class Representation < Google::Apis::Core::JsonRepresentation - end - end - - class Context - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1::ContextRule, decorator: Google::Apis::ServicenetworkingV1::ContextRule::Representation - - end - end - - class ContextRule - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :allowed_request_extensions, as: 'allowedRequestExtensions' - collection :allowed_response_extensions, as: 'allowedResponseExtensions' - collection :provided, as: 'provided' - collection :requested, as: 'requested' - property :selector, as: 'selector' - end - end - - class Control - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :environment, as: 'environment' - end - end - - class CustomError - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1::CustomErrorRule, decorator: Google::Apis::ServicenetworkingV1::CustomErrorRule::Representation - - collection :types, as: 'types' - end - end - - class CustomErrorRule - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :is_error_type, as: 'isErrorType' - property :selector, as: 'selector' - end - end - - class CustomHttpPattern - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :kind, as: 'kind' - property :path, as: 'path' - end - end - - class Documentation - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :documentation_root_url, as: 'documentationRootUrl' - property :overview, as: 'overview' - collection :pages, as: 'pages', class: Google::Apis::ServicenetworkingV1::Page, decorator: Google::Apis::ServicenetworkingV1::Page::Representation - - collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1::DocumentationRule, decorator: Google::Apis::ServicenetworkingV1::DocumentationRule::Representation - - property :summary, as: 'summary' - end - end - - class DocumentationRule - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :deprecation_description, as: 'deprecationDescription' - property :description, as: 'description' - property :selector, as: 'selector' - end - end - - class Empty - # @private - class Representation < Google::Apis::Core::JsonRepresentation - end - end - - class Endpoint - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :aliases, as: 'aliases' - property :allow_cors, as: 'allowCors' - collection :features, as: 'features' - property :name, as: 'name' - property :target, as: 'target' - end - end - - class Enum - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :enumvalue, as: 'enumvalue', class: Google::Apis::ServicenetworkingV1::EnumValue, decorator: Google::Apis::ServicenetworkingV1::EnumValue::Representation - - property :name, as: 'name' - collection :options, as: 'options', class: Google::Apis::ServicenetworkingV1::Option, decorator: Google::Apis::ServicenetworkingV1::Option::Representation - - property :source_context, as: 'sourceContext', class: Google::Apis::ServicenetworkingV1::SourceContext, decorator: Google::Apis::ServicenetworkingV1::SourceContext::Representation - - property :syntax, as: 'syntax' - end - end - - class EnumValue - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :name, as: 'name' - property :number, as: 'number' - collection :options, as: 'options', class: Google::Apis::ServicenetworkingV1::Option, decorator: Google::Apis::ServicenetworkingV1::Option::Representation - - end - end - - class Experimental - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :authorization, as: 'authorization', class: Google::Apis::ServicenetworkingV1::AuthorizationConfig, decorator: Google::Apis::ServicenetworkingV1::AuthorizationConfig::Representation - - end - end - - class Field - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :cardinality, as: 'cardinality' - property :default_value, as: 'defaultValue' - property :json_name, as: 'jsonName' - property :kind, as: 'kind' - property :name, as: 'name' - property :number, as: 'number' - property :oneof_index, as: 'oneofIndex' - collection :options, as: 'options', class: Google::Apis::ServicenetworkingV1::Option, decorator: Google::Apis::ServicenetworkingV1::Option::Representation - - property :packed, as: 'packed' - property :type_url, as: 'typeUrl' - end - end - - class Http - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :fully_decode_reserved_expansion, as: 'fullyDecodeReservedExpansion' - collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1::HttpRule, decorator: Google::Apis::ServicenetworkingV1::HttpRule::Representation - - end - end - - class HttpRule - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :additional_bindings, as: 'additionalBindings', class: Google::Apis::ServicenetworkingV1::HttpRule, decorator: Google::Apis::ServicenetworkingV1::HttpRule::Representation - - property :body, as: 'body' - property :custom, as: 'custom', class: Google::Apis::ServicenetworkingV1::CustomHttpPattern, decorator: Google::Apis::ServicenetworkingV1::CustomHttpPattern::Representation - - property :delete, as: 'delete' - property :get, as: 'get' - property :patch, as: 'patch' - property :post, as: 'post' - property :put, as: 'put' - property :response_body, as: 'responseBody' - property :selector, as: 'selector' - end - end - - class LabelDescriptor - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :description, as: 'description' - property :key, as: 'key' - property :value_type, as: 'valueType' - end - end - - class ListOperationsResponse - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :next_page_token, as: 'nextPageToken' - collection :operations, as: 'operations', class: Google::Apis::ServicenetworkingV1::Operation, decorator: Google::Apis::ServicenetworkingV1::Operation::Representation - - end - end - - class LogDescriptor - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :description, as: 'description' - property :display_name, as: 'displayName' - collection :labels, as: 'labels', class: Google::Apis::ServicenetworkingV1::LabelDescriptor, decorator: Google::Apis::ServicenetworkingV1::LabelDescriptor::Representation - - property :name, as: 'name' - end - end - - class Logging - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :consumer_destinations, as: 'consumerDestinations', class: Google::Apis::ServicenetworkingV1::LoggingDestination, decorator: Google::Apis::ServicenetworkingV1::LoggingDestination::Representation - - collection :producer_destinations, as: 'producerDestinations', class: Google::Apis::ServicenetworkingV1::LoggingDestination, decorator: Google::Apis::ServicenetworkingV1::LoggingDestination::Representation - - end - end - - class LoggingDestination - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :logs, as: 'logs' - property :monitored_resource, as: 'monitoredResource' - end - end - - class MethodProp - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :name, as: 'name' - collection :options, as: 'options', class: Google::Apis::ServicenetworkingV1::Option, decorator: Google::Apis::ServicenetworkingV1::Option::Representation - - property :request_streaming, as: 'requestStreaming' - property :request_type_url, as: 'requestTypeUrl' - property :response_streaming, as: 'responseStreaming' - property :response_type_url, as: 'responseTypeUrl' - property :syntax, as: 'syntax' - end - end - - class MetricDescriptor - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :description, as: 'description' - property :display_name, as: 'displayName' - collection :labels, as: 'labels', class: Google::Apis::ServicenetworkingV1::LabelDescriptor, decorator: Google::Apis::ServicenetworkingV1::LabelDescriptor::Representation - - property :metadata, as: 'metadata', class: Google::Apis::ServicenetworkingV1::MetricDescriptorMetadata, decorator: Google::Apis::ServicenetworkingV1::MetricDescriptorMetadata::Representation - - property :metric_kind, as: 'metricKind' - property :name, as: 'name' - property :type, as: 'type' - property :unit, as: 'unit' - property :value_type, as: 'valueType' - end - end - - class MetricDescriptorMetadata - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :ingest_delay, as: 'ingestDelay' - property :launch_stage, as: 'launchStage' - property :sample_period, as: 'samplePeriod' - end - end - - class MetricRule - # @private - class Representation < Google::Apis::Core::JsonRepresentation - hash :metric_costs, as: 'metricCosts' - property :selector, as: 'selector' - end - end - - class Mixin - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :name, as: 'name' - property :root, as: 'root' - end - end - - class MonitoredResourceDescriptor - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :description, as: 'description' - property :display_name, as: 'displayName' - collection :labels, as: 'labels', class: Google::Apis::ServicenetworkingV1::LabelDescriptor, decorator: Google::Apis::ServicenetworkingV1::LabelDescriptor::Representation - - property :name, as: 'name' - property :type, as: 'type' - end - end - - class Monitoring - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :consumer_destinations, as: 'consumerDestinations', class: Google::Apis::ServicenetworkingV1::MonitoringDestination, decorator: Google::Apis::ServicenetworkingV1::MonitoringDestination::Representation - - collection :producer_destinations, as: 'producerDestinations', class: Google::Apis::ServicenetworkingV1::MonitoringDestination, decorator: Google::Apis::ServicenetworkingV1::MonitoringDestination::Representation - - end - end - - class MonitoringDestination - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :metrics, as: 'metrics' - property :monitored_resource, as: 'monitoredResource' - end - end - - class OAuthRequirements - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :canonical_scopes, as: 'canonicalScopes' - end - end - - class Operation - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :done, as: 'done' - property :error, as: 'error', class: Google::Apis::ServicenetworkingV1::Status, decorator: Google::Apis::ServicenetworkingV1::Status::Representation - - hash :metadata, as: 'metadata' - property :name, as: 'name' - hash :response, as: 'response' - end - end - - class Option - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :name, as: 'name' - hash :value, as: 'value' - end - end - - class Page - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :content, as: 'content' - property :name, as: 'name' - collection :subpages, as: 'subpages', class: Google::Apis::ServicenetworkingV1::Page, decorator: Google::Apis::ServicenetworkingV1::Page::Representation - - end - end - - class Quota - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :limits, as: 'limits', class: Google::Apis::ServicenetworkingV1::QuotaLimit, decorator: Google::Apis::ServicenetworkingV1::QuotaLimit::Representation - - collection :metric_rules, as: 'metricRules', class: Google::Apis::ServicenetworkingV1::MetricRule, decorator: Google::Apis::ServicenetworkingV1::MetricRule::Representation - - end - end - - class QuotaLimit - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :default_limit, :numeric_string => true, as: 'defaultLimit' - property :description, as: 'description' - property :display_name, as: 'displayName' - property :duration, as: 'duration' - property :free_tier, :numeric_string => true, as: 'freeTier' - property :max_limit, :numeric_string => true, as: 'maxLimit' - property :metric, as: 'metric' - property :name, as: 'name' - property :unit, as: 'unit' - hash :values, as: 'values' - end - end - - class Service - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :apis, as: 'apis', class: Google::Apis::ServicenetworkingV1::Api, decorator: Google::Apis::ServicenetworkingV1::Api::Representation - - property :authentication, as: 'authentication', class: Google::Apis::ServicenetworkingV1::Authentication, decorator: Google::Apis::ServicenetworkingV1::Authentication::Representation - - property :backend, as: 'backend', class: Google::Apis::ServicenetworkingV1::Backend, decorator: Google::Apis::ServicenetworkingV1::Backend::Representation - - property :billing, as: 'billing', class: Google::Apis::ServicenetworkingV1::Billing, decorator: Google::Apis::ServicenetworkingV1::Billing::Representation - - property :config_version, as: 'configVersion' - property :context, as: 'context', class: Google::Apis::ServicenetworkingV1::Context, decorator: Google::Apis::ServicenetworkingV1::Context::Representation - - property :control, as: 'control', class: Google::Apis::ServicenetworkingV1::Control, decorator: Google::Apis::ServicenetworkingV1::Control::Representation - - property :custom_error, as: 'customError', class: Google::Apis::ServicenetworkingV1::CustomError, decorator: Google::Apis::ServicenetworkingV1::CustomError::Representation - - property :documentation, as: 'documentation', class: Google::Apis::ServicenetworkingV1::Documentation, decorator: Google::Apis::ServicenetworkingV1::Documentation::Representation - - collection :endpoints, as: 'endpoints', class: Google::Apis::ServicenetworkingV1::Endpoint, decorator: Google::Apis::ServicenetworkingV1::Endpoint::Representation - - collection :enums, as: 'enums', class: Google::Apis::ServicenetworkingV1::Enum, decorator: Google::Apis::ServicenetworkingV1::Enum::Representation - - property :experimental, as: 'experimental', class: Google::Apis::ServicenetworkingV1::Experimental, decorator: Google::Apis::ServicenetworkingV1::Experimental::Representation - - property :http, as: 'http', class: Google::Apis::ServicenetworkingV1::Http, decorator: Google::Apis::ServicenetworkingV1::Http::Representation - - property :id, as: 'id' - property :logging, as: 'logging', class: Google::Apis::ServicenetworkingV1::Logging, decorator: Google::Apis::ServicenetworkingV1::Logging::Representation - - collection :logs, as: 'logs', class: Google::Apis::ServicenetworkingV1::LogDescriptor, decorator: Google::Apis::ServicenetworkingV1::LogDescriptor::Representation - - collection :metrics, as: 'metrics', class: Google::Apis::ServicenetworkingV1::MetricDescriptor, decorator: Google::Apis::ServicenetworkingV1::MetricDescriptor::Representation - - collection :monitored_resources, as: 'monitoredResources', class: Google::Apis::ServicenetworkingV1::MonitoredResourceDescriptor, decorator: Google::Apis::ServicenetworkingV1::MonitoredResourceDescriptor::Representation - - property :monitoring, as: 'monitoring', class: Google::Apis::ServicenetworkingV1::Monitoring, decorator: Google::Apis::ServicenetworkingV1::Monitoring::Representation - - property :name, as: 'name' - property :producer_project_id, as: 'producerProjectId' - property :quota, as: 'quota', class: Google::Apis::ServicenetworkingV1::Quota, decorator: Google::Apis::ServicenetworkingV1::Quota::Representation - - property :source_info, as: 'sourceInfo', class: Google::Apis::ServicenetworkingV1::SourceInfo, decorator: Google::Apis::ServicenetworkingV1::SourceInfo::Representation - - property :system_parameters, as: 'systemParameters', class: Google::Apis::ServicenetworkingV1::SystemParameters, decorator: Google::Apis::ServicenetworkingV1::SystemParameters::Representation - - collection :system_types, as: 'systemTypes', class: Google::Apis::ServicenetworkingV1::Type, decorator: Google::Apis::ServicenetworkingV1::Type::Representation - - property :title, as: 'title' - collection :types, as: 'types', class: Google::Apis::ServicenetworkingV1::Type, decorator: Google::Apis::ServicenetworkingV1::Type::Representation - - property :usage, as: 'usage', class: Google::Apis::ServicenetworkingV1::Usage, decorator: Google::Apis::ServicenetworkingV1::Usage::Representation - - end - end - - class SourceContext - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :file_name, as: 'fileName' - end - end - - class SourceInfo - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :source_files, as: 'sourceFiles' - end - end - - class Status - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :code, as: 'code' - collection :details, as: 'details' - property :message, as: 'message' - end - end - - class Subnetwork - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :ip_cidr_range, as: 'ipCidrRange' - property :name, as: 'name' - end - end - - class SystemParameter - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :http_header, as: 'httpHeader' - property :name, as: 'name' - property :url_query_parameter, as: 'urlQueryParameter' - end - end - - class SystemParameterRule - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :parameters, as: 'parameters', class: Google::Apis::ServicenetworkingV1::SystemParameter, decorator: Google::Apis::ServicenetworkingV1::SystemParameter::Representation - - property :selector, as: 'selector' - end - end - - class SystemParameters - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1::SystemParameterRule, decorator: Google::Apis::ServicenetworkingV1::SystemParameterRule::Representation - - end - end - - class Type - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :fields, as: 'fields', class: Google::Apis::ServicenetworkingV1::Field, decorator: Google::Apis::ServicenetworkingV1::Field::Representation - - property :name, as: 'name' - collection :oneofs, as: 'oneofs' - collection :options, as: 'options', class: Google::Apis::ServicenetworkingV1::Option, decorator: Google::Apis::ServicenetworkingV1::Option::Representation - - property :source_context, as: 'sourceContext', class: Google::Apis::ServicenetworkingV1::SourceContext, decorator: Google::Apis::ServicenetworkingV1::SourceContext::Representation - - property :syntax, as: 'syntax' - end - end - - class Usage - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :producer_notification_channel, as: 'producerNotificationChannel' - collection :requirements, as: 'requirements' - collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1::UsageRule, decorator: Google::Apis::ServicenetworkingV1::UsageRule::Representation - - end - end - - class UsageRule - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :allow_unregistered_calls, as: 'allowUnregisteredCalls' - property :selector, as: 'selector' - property :skip_service_control, as: 'skipServiceControl' - end - end - end - end -end diff --git a/generated/google/apis/servicenetworking_v1/service.rb b/generated/google/apis/servicenetworking_v1/service.rb deleted file mode 100644 index 9eff56785..000000000 --- a/generated/google/apis/servicenetworking_v1/service.rb +++ /dev/null @@ -1,214 +0,0 @@ -# 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 ServicenetworkingV1 - # Service Networking API - # - # The Service Networking API provides automatic management of network - # configurations necessary for certain services. - # - # @example - # require 'google/apis/servicenetworking_v1' - # - # Servicenetworking = Google::Apis::ServicenetworkingV1 # Alias the module - # service = Servicenetworking::ServiceNetworkingService.new - # - # @see https://cloud.google.com/service-infrastructure/docs/service-networking/reference/rest/ - class ServiceNetworkingService < 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://servicenetworking.googleapis.com/', '') - @batch_path = 'batch' - end - - # Starts asynchronous cancellation on a long-running operation. The server - # makes a best effort to cancel the operation, but success is not - # guaranteed. If the server doesn't support this method, it returns - # `google.rpc.Code.UNIMPLEMENTED`. Clients can use - # Operations.GetOperation or - # other methods to check whether the cancellation succeeded or whether the - # operation completed despite cancellation. On successful cancellation, - # the operation is not deleted; instead, it becomes an operation with - # an Operation.error value with a google.rpc.Status.code of 1, - # corresponding to `Code.CANCELLED`. - # @param [String] name - # The name of the operation resource to be cancelled. - # @param [Google::Apis::ServicenetworkingV1::CancelOperationRequest] cancel_operation_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::ServicenetworkingV1::Empty] parsed result object - # @yieldparam err [StandardError] error object if request failed - # - # @return [Google::Apis::ServicenetworkingV1::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 cancel_operation(name, cancel_operation_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) - command = make_simple_command(:post, 'v1/{+name}:cancel', options) - command.request_representation = Google::Apis::ServicenetworkingV1::CancelOperationRequest::Representation - command.request_object = cancel_operation_request_object - command.response_representation = Google::Apis::ServicenetworkingV1::Empty::Representation - command.response_class = Google::Apis::ServicenetworkingV1::Empty - command.params['name'] = name unless name.nil? - command.query['fields'] = fields unless fields.nil? - command.query['quotaUser'] = quota_user unless quota_user.nil? - execute_or_queue_command(command, &block) - end - - # Deletes a long-running operation. This method indicates that the client is - # no longer interested in the operation result. It does not cancel the - # operation. If the server doesn't support this method, it returns - # `google.rpc.Code.UNIMPLEMENTED`. - # @param [String] name - # The name of the operation resource to be deleted. - # @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::ServicenetworkingV1::Empty] parsed result object - # @yieldparam err [StandardError] error object if request failed - # - # @return [Google::Apis::ServicenetworkingV1::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 delete_operation(name, fields: nil, quota_user: nil, options: nil, &block) - command = make_simple_command(:delete, 'v1/{+name}', options) - command.response_representation = Google::Apis::ServicenetworkingV1::Empty::Representation - command.response_class = Google::Apis::ServicenetworkingV1::Empty - command.params['name'] = name unless name.nil? - command.query['fields'] = fields unless fields.nil? - command.query['quotaUser'] = quota_user unless quota_user.nil? - execute_or_queue_command(command, &block) - end - - # Gets the latest state of a long-running operation. Clients can use this - # method to poll the operation result at intervals as recommended by the API - # service. - # @param [String] name - # The name of the operation resource. - # @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::ServicenetworkingV1::Operation] parsed result object - # @yieldparam err [StandardError] error object if request failed - # - # @return [Google::Apis::ServicenetworkingV1::Operation] - # - # @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_operation(name, fields: nil, quota_user: nil, options: nil, &block) - command = make_simple_command(:get, 'v1/{+name}', options) - command.response_representation = Google::Apis::ServicenetworkingV1::Operation::Representation - command.response_class = Google::Apis::ServicenetworkingV1::Operation - command.params['name'] = name unless name.nil? - command.query['fields'] = fields unless fields.nil? - command.query['quotaUser'] = quota_user unless quota_user.nil? - execute_or_queue_command(command, &block) - end - - # Lists operations that match the specified filter in the request. If the - # server doesn't support this method, it returns `UNIMPLEMENTED`. - # NOTE: the `name` binding allows API services to override the binding - # to use different resource name schemes, such as `users/*/operations`. To - # override the binding, API services can add a binding such as - # `"/v1/`name=users/*`/operations"` to their service configuration. - # For backwards compatibility, the default name includes the operations - # collection id, however overriding users must ensure the name binding - # is the parent resource, without the operations collection id. - # @param [String] name - # The name of the operation's parent resource. - # @param [String] filter - # The standard list filter. - # @param [Fixnum] page_size - # The standard list page size. - # @param [String] page_token - # The standard list page token. - # @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::ServicenetworkingV1::ListOperationsResponse] parsed result object - # @yieldparam err [StandardError] error object if request failed - # - # @return [Google::Apis::ServicenetworkingV1::ListOperationsResponse] - # - # @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_operations(name, filter: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) - command = make_simple_command(:get, 'v1/{+name}', options) - command.response_representation = Google::Apis::ServicenetworkingV1::ListOperationsResponse::Representation - command.response_class = Google::Apis::ServicenetworkingV1::ListOperationsResponse - command.params['name'] = name unless name.nil? - command.query['filter'] = filter unless filter.nil? - command.query['pageSize'] = page_size unless page_size.nil? - command.query['pageToken'] = page_token unless page_token.nil? - command.query['fields'] = fields unless fields.nil? - command.query['quotaUser'] = quota_user unless quota_user.nil? - execute_or_queue_command(command, &block) - end - - protected - - def apply_command_defaults(command) - command.query['key'] = key unless key.nil? - command.query['quotaUser'] = quota_user unless quota_user.nil? - end - end - end - end -end diff --git a/generated/google/apis/servicenetworking_v1beta.rb b/generated/google/apis/servicenetworking_v1beta.rb index af57b6d16..576cda00e 100644 --- a/generated/google/apis/servicenetworking_v1beta.rb +++ b/generated/google/apis/servicenetworking_v1beta.rb @@ -20,13 +20,13 @@ module Google module Apis # Service Networking API # - # The Service Networking API provides automatic management of network - # configurations necessary for certain services. + # Provides automatic management of network configurations necessary for certain + # services. # - # @see https://cloud.google.com/service-infrastructure/docs/service-networking/reference/rest/ + # @see https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started module ServicenetworkingV1beta VERSION = 'V1beta' - REVISION = '20181001' + REVISION = '20181004' # View and manage your data across Google Cloud Platform services AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' diff --git a/generated/google/apis/servicenetworking_v1beta/classes.rb b/generated/google/apis/servicenetworking_v1beta/classes.rb index 33b8dceed..0cf48a102 100644 --- a/generated/google/apis/servicenetworking_v1beta/classes.rb +++ b/generated/google/apis/servicenetworking_v1beta/classes.rb @@ -94,32 +94,6 @@ module Google end end - # Message returning the name of the created service subnetwork. - class AddSubnetworkResponse - include Google::Apis::Core::Hashable - - # Subnetwork CIDR range in "10.x.x.x/y" format. - # Corresponds to the JSON property `ipCidrRange` - # @return [String] - attr_accessor :ip_cidr_range - - # Subnetwork name. - # See https://cloud.google.com/compute/docs/vpc/ - # 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) - @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range) - @name = args[:name] if args.key?(:name) - end - end - # Api is a light-weight descriptor for an API Interface. # Interfaces are also described as "protocol buffer services" in some contexts, # such as by the "service" keyword in a .proto file, but they are different @@ -1252,7 +1226,7 @@ module Google # service Messaging ` # rpc GetMessage(GetMessageRequest) returns (Message) ` # option (google.api.http) = ` - # get: "/v1/`name=messages/*"`" + # get: "/v1/`name=messages/*`" # `; # ` # ` diff --git a/generated/google/apis/servicenetworking_v1beta/representations.rb b/generated/google/apis/servicenetworking_v1beta/representations.rb index 7bacd95ec..e52140dad 100644 --- a/generated/google/apis/servicenetworking_v1beta/representations.rb +++ b/generated/google/apis/servicenetworking_v1beta/representations.rb @@ -28,12 +28,6 @@ module Google include Google::Apis::Core::JsonObjectSupport end - class AddSubnetworkResponse - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - class Api class Representation < Google::Apis::Core::JsonRepresentation; end @@ -383,14 +377,6 @@ module Google end end - class AddSubnetworkResponse - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :ip_cidr_range, as: 'ipCidrRange' - property :name, as: 'name' - end - end - class Api # @private class Representation < Google::Apis::Core::JsonRepresentation diff --git a/generated/google/apis/servicenetworking_v1beta/service.rb b/generated/google/apis/servicenetworking_v1beta/service.rb index ce981faa7..bafa0533f 100644 --- a/generated/google/apis/servicenetworking_v1beta/service.rb +++ b/generated/google/apis/servicenetworking_v1beta/service.rb @@ -22,8 +22,8 @@ module Google module ServicenetworkingV1beta # Service Networking API # - # The Service Networking API provides automatic management of network - # configurations necessary for certain services. + # Provides automatic management of network configurations necessary for certain + # services. # # @example # require 'google/apis/servicenetworking_v1beta' @@ -31,7 +31,7 @@ module Google # Servicenetworking = Google::Apis::ServicenetworkingV1beta # Alias the module # service = Servicenetworking::ServiceNetworkingService.new # - # @see https://cloud.google.com/service-infrastructure/docs/service-networking/reference/rest/ + # @see https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started class ServiceNetworkingService < Google::Apis::Core::BaseService # @return [String] # API key. Your API key identifies your project and provides you with API access, diff --git a/generated/google/apis/serviceusage_v1.rb b/generated/google/apis/serviceusage_v1.rb index 4f9124848..1adec552c 100644 --- a/generated/google/apis/serviceusage_v1.rb +++ b/generated/google/apis/serviceusage_v1.rb @@ -27,7 +27,7 @@ module Google # @see https://cloud.google.com/service-usage/ module ServiceusageV1 VERSION = 'V1' - REVISION = '20180919' + REVISION = '20181004' # View and manage your data across Google Cloud Platform services AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' diff --git a/generated/google/apis/serviceusage_v1/classes.rb b/generated/google/apis/serviceusage_v1/classes.rb index b878f267b..d44542a55 100644 --- a/generated/google/apis/serviceusage_v1/classes.rb +++ b/generated/google/apis/serviceusage_v1/classes.rb @@ -1981,7 +1981,7 @@ module Google # service Messaging ` # rpc GetMessage(GetMessageRequest) returns (Message) ` # option (google.api.http) = ` - # get: "/v1/`name=messages/*"`" + # get: "/v1/`name=messages/*`" # `; # ` # ` diff --git a/generated/google/apis/serviceusage_v1beta1.rb b/generated/google/apis/serviceusage_v1beta1.rb index dffaf3312..a034a76c5 100644 --- a/generated/google/apis/serviceusage_v1beta1.rb +++ b/generated/google/apis/serviceusage_v1beta1.rb @@ -27,7 +27,7 @@ module Google # @see https://cloud.google.com/service-usage/ module ServiceusageV1beta1 VERSION = 'V1beta1' - REVISION = '20180919' + REVISION = '20181004' # View and manage your data across Google Cloud Platform services AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' diff --git a/generated/google/apis/serviceusage_v1beta1/classes.rb b/generated/google/apis/serviceusage_v1beta1/classes.rb index 8643a5159..943cc0196 100644 --- a/generated/google/apis/serviceusage_v1beta1/classes.rb +++ b/generated/google/apis/serviceusage_v1beta1/classes.rb @@ -1957,7 +1957,7 @@ module Google # service Messaging ` # rpc GetMessage(GetMessageRequest) returns (Message) ` # option (google.api.http) = ` - # get: "/v1/`name=messages/*"`" + # get: "/v1/`name=messages/*`" # `; # ` # ` diff --git a/generated/google/apis/spanner_v1.rb b/generated/google/apis/spanner_v1.rb index a7a5705dc..32746509f 100644 --- a/generated/google/apis/spanner_v1.rb +++ b/generated/google/apis/spanner_v1.rb @@ -26,7 +26,7 @@ module Google # @see https://cloud.google.com/spanner/ module SpannerV1 VERSION = 'V1' - REVISION = '20180906' + REVISION = '20180920' # View and manage your data across Google Cloud Platform services AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' diff --git a/generated/google/apis/spanner_v1/classes.rb b/generated/google/apis/spanner_v1/classes.rb index f1f7abd7c..62890ae28 100644 --- a/generated/google/apis/spanner_v1/classes.rb +++ b/generated/google/apis/spanner_v1/classes.rb @@ -32,7 +32,7 @@ module Google # re-used for the next transaction. It is not necessary to create a # new session for each transaction. # # Transaction Modes - # Cloud Spanner supports two transaction modes: + # Cloud Spanner supports three transaction modes: # 1. Locking read-write. This type of transaction is the only way # to write data into Cloud Spanner. These transactions rely on # pessimistic locking and, if necessary, two-phase commit. @@ -43,6 +43,12 @@ module Google # writes. Snapshot read-only transactions can be configured to # read at timestamps in the past. Snapshot read-only # transactions do not need to be committed. + # 3. Partitioned DML. This type of transaction is used to execute + # a single Partitioned DML statement. Partitioned DML partitions + # the key space and runs the DML statement over each partition + # in parallel using separate, internal transactions that commit + # independently. Partitioned DML transactions do not need to be + # committed. # For transactions that only read, snapshot read-only transactions # provide simpler semantics and are almost always faster. In # particular, read-only transactions do not take locks, so they do @@ -64,11 +70,8 @@ module Google # Rollback. Long periods of # inactivity at the client may cause Cloud Spanner to release a # transaction's locks and abort it. - # Reads performed within a transaction acquire locks on the data - # being read. Writes can only be done at commit time, after all reads - # have been completed. # Conceptually, a read-write transaction consists of zero or more - # reads or SQL queries followed by + # reads or SQL statements followed by # Commit. At any time before # Commit, the client can send a # Rollback request to abort the @@ -194,7 +197,50 @@ module Google # restriction also applies to in-progress reads and/or SQL queries whose # timestamp become too old while executing. Reads and SQL queries with # too-old read timestamps fail with the error `FAILED_PRECONDITION`. - # ## + # ## Partitioned DML Transactions + # Partitioned DML transactions are used to execute DML statements with a + # different execution strategy that provides different, and often better, + # scalability properties for large, table-wide operations than DML in a + # ReadWrite transaction. Smaller scoped statements, such as an OLTP workload, + # should prefer using ReadWrite transactions. + # Partitioned DML partitions the keyspace and runs the DML statement on each + # partition in separate, internal transactions. These transactions commit + # automatically when complete, and run independently from one another. + # To reduce lock contention, this execution strategy only acquires read locks + # on rows that match the WHERE clause of the statement. Additionally, the + # smaller per-partition transactions hold locks for less time. + # That said, Partitioned DML is not a drop-in replacement for standard DML used + # in ReadWrite transactions. + # - The DML statement must be fully-partitionable. Specifically, the statement + # must be expressible as the union of many statements which each access only + # a single row of the table. + # - The statement is not applied atomically to all rows of the table. Rather, + # the statement is applied atomically to partitions of the table, in + # independent transactions. Secondary index rows are updated atomically + # with the base table rows. + # - Partitioned DML does not guarantee exactly-once execution semantics + # against a partition. The statement will be applied at least once to each + # partition. It is strongly recommended that the DML statement should be + # idempotent to avoid unexpected results. For instance, it is potentially + # dangerous to run a statement such as + # `UPDATE table SET column = column + 1` as it could be run multiple times + # against some rows. + # - The partitions are committed automatically - there is no support for + # Commit or Rollback. If the call returns an error, or if the client issuing + # the ExecuteSql call dies, it is possible that some rows had the statement + # executed on them successfully. It is also possible that statement was + # never executed against other rows. + # - Partitioned DML transactions may only contain the execution of a single + # DML statement via ExecuteSql or ExecuteStreamingSql. + # - If any error is encountered during the execution of the partitioned DML + # operation (for instance, a UNIQUE INDEX violation, division by zero, or a + # value that cannot be stored due to schema constraints), then the + # operation is stopped at that point and an error is returned. It is + # possible that at this point, some partitions have been committed (or even + # committed multiple times), and other partitions have not been run at all. + # Given the above, Partitioned DML is good fit for large, database-wide, + # operations that are idempotent, such as deleting old rows from a very large + # table. # Corresponds to the JSON property `options` # @return [Google::Apis::SpannerV1::TransactionOptions] attr_accessor :options @@ -316,7 +362,7 @@ module Google # re-used for the next transaction. It is not necessary to create a # new session for each transaction. # # Transaction Modes - # Cloud Spanner supports two transaction modes: + # Cloud Spanner supports three transaction modes: # 1. Locking read-write. This type of transaction is the only way # to write data into Cloud Spanner. These transactions rely on # pessimistic locking and, if necessary, two-phase commit. @@ -327,6 +373,12 @@ module Google # writes. Snapshot read-only transactions can be configured to # read at timestamps in the past. Snapshot read-only # transactions do not need to be committed. + # 3. Partitioned DML. This type of transaction is used to execute + # a single Partitioned DML statement. Partitioned DML partitions + # the key space and runs the DML statement over each partition + # in parallel using separate, internal transactions that commit + # independently. Partitioned DML transactions do not need to be + # committed. # For transactions that only read, snapshot read-only transactions # provide simpler semantics and are almost always faster. In # particular, read-only transactions do not take locks, so they do @@ -348,11 +400,8 @@ module Google # Rollback. Long periods of # inactivity at the client may cause Cloud Spanner to release a # transaction's locks and abort it. - # Reads performed within a transaction acquire locks on the data - # being read. Writes can only be done at commit time, after all reads - # have been completed. # Conceptually, a read-write transaction consists of zero or more - # reads or SQL queries followed by + # reads or SQL statements followed by # Commit. At any time before # Commit, the client can send a # Rollback request to abort the @@ -478,7 +527,50 @@ module Google # restriction also applies to in-progress reads and/or SQL queries whose # timestamp become too old while executing. Reads and SQL queries with # too-old read timestamps fail with the error `FAILED_PRECONDITION`. - # ## + # ## Partitioned DML Transactions + # Partitioned DML transactions are used to execute DML statements with a + # different execution strategy that provides different, and often better, + # scalability properties for large, table-wide operations than DML in a + # ReadWrite transaction. Smaller scoped statements, such as an OLTP workload, + # should prefer using ReadWrite transactions. + # Partitioned DML partitions the keyspace and runs the DML statement on each + # partition in separate, internal transactions. These transactions commit + # automatically when complete, and run independently from one another. + # To reduce lock contention, this execution strategy only acquires read locks + # on rows that match the WHERE clause of the statement. Additionally, the + # smaller per-partition transactions hold locks for less time. + # That said, Partitioned DML is not a drop-in replacement for standard DML used + # in ReadWrite transactions. + # - The DML statement must be fully-partitionable. Specifically, the statement + # must be expressible as the union of many statements which each access only + # a single row of the table. + # - The statement is not applied atomically to all rows of the table. Rather, + # the statement is applied atomically to partitions of the table, in + # independent transactions. Secondary index rows are updated atomically + # with the base table rows. + # - Partitioned DML does not guarantee exactly-once execution semantics + # against a partition. The statement will be applied at least once to each + # partition. It is strongly recommended that the DML statement should be + # idempotent to avoid unexpected results. For instance, it is potentially + # dangerous to run a statement such as + # `UPDATE table SET column = column + 1` as it could be run multiple times + # against some rows. + # - The partitions are committed automatically - there is no support for + # Commit or Rollback. If the call returns an error, or if the client issuing + # the ExecuteSql call dies, it is possible that some rows had the statement + # executed on them successfully. It is also possible that statement was + # never executed against other rows. + # - Partitioned DML transactions may only contain the execution of a single + # DML statement via ExecuteSql or ExecuteStreamingSql. + # - If any error is encountered during the execution of the partitioned DML + # operation (for instance, a UNIQUE INDEX violation, division by zero, or a + # value that cannot be stored due to schema constraints), then the + # operation is stopped at that point and an error is returned. It is + # possible that at this point, some partitions have been committed (or even + # committed multiple times), and other partitions have not been run at all. + # Given the above, Partitioned DML is good fit for large, database-wide, + # operations that are idempotent, such as deleting old rows from a very large + # table. # Corresponds to the JSON property `singleUseTransaction` # @return [Google::Apis::SpannerV1::TransactionOptions] attr_accessor :single_use_transaction @@ -796,6 +888,18 @@ module Google # @return [String] attr_accessor :resume_token + # A per-transaction sequence number used to identify this request. This + # makes each request idempotent such that if the request is received multiple + # times, at most one will succeed. + # The sequence number must be monotonically increasing within the + # transaction. If a request arrives for the first time with an out-of-order + # sequence number, the transaction may be aborted. Replays of previously + # handled requests will yield the same response as the first execution. + # Required for DML statements. Ignored for queries. + # Corresponds to the JSON property `seqno` + # @return [Fixnum] + attr_accessor :seqno + # Required. The SQL string. # Corresponds to the JSON property `sql` # @return [String] @@ -820,6 +924,7 @@ module Google @partition_token = args[:partition_token] if args.key?(:partition_token) @query_mode = args[:query_mode] if args.key?(:query_mode) @resume_token = args[:resume_token] if args.key?(:resume_token) + @seqno = args[:seqno] if args.key?(:seqno) @sql = args[:sql] if args.key?(:sql) @transaction = args[:transaction] if args.key?(:transaction) end @@ -1679,6 +1784,9 @@ module Google # union operator conceptually divides one or more tables into multiple # splits, remotely evaluates a subquery independently on each split, and # then unions all results. + # This must not contain DML commands, such as INSERT, UPDATE, or + # DELETE. Use ExecuteStreamingSql with a + # PartitionedDml transaction for large, partition-friendly DML operations. # Corresponds to the JSON property `sql` # @return [String] attr_accessor :sql @@ -1792,6 +1900,19 @@ module Google end end + # Message type to initiate a Partitioned DML transaction. + class PartitionedDml + include Google::Apis::Core::Hashable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + end + end + # Node information for nodes appearing in a QueryPlan.plan_nodes. class PlanNode include Google::Apis::Core::Hashable @@ -2227,6 +2348,17 @@ module Google # @return [Hash] attr_accessor :query_stats + # Standard DML returns an exact count of rows that were modified. + # Corresponds to the JSON property `rowCountExact` + # @return [Fixnum] + attr_accessor :row_count_exact + + # Partitioned DML does not offer exactly-once semantics, so it + # returns a lower bound of the rows modified. + # Corresponds to the JSON property `rowCountLowerBound` + # @return [Fixnum] + attr_accessor :row_count_lower_bound + def initialize(**args) update!(**args) end @@ -2235,6 +2367,8 @@ module Google def update!(**args) @query_plan = args[:query_plan] if args.key?(:query_plan) @query_stats = args[:query_stats] if args.key?(:query_stats) + @row_count_exact = args[:row_count_exact] if args.key?(:row_count_exact) + @row_count_lower_bound = args[:row_count_lower_bound] if args.key?(:row_count_lower_bound) end end @@ -2567,7 +2701,7 @@ module Google # re-used for the next transaction. It is not necessary to create a # new session for each transaction. # # Transaction Modes - # Cloud Spanner supports two transaction modes: + # Cloud Spanner supports three transaction modes: # 1. Locking read-write. This type of transaction is the only way # to write data into Cloud Spanner. These transactions rely on # pessimistic locking and, if necessary, two-phase commit. @@ -2578,6 +2712,12 @@ module Google # writes. Snapshot read-only transactions can be configured to # read at timestamps in the past. Snapshot read-only # transactions do not need to be committed. + # 3. Partitioned DML. This type of transaction is used to execute + # a single Partitioned DML statement. Partitioned DML partitions + # the key space and runs the DML statement over each partition + # in parallel using separate, internal transactions that commit + # independently. Partitioned DML transactions do not need to be + # committed. # For transactions that only read, snapshot read-only transactions # provide simpler semantics and are almost always faster. In # particular, read-only transactions do not take locks, so they do @@ -2599,11 +2739,8 @@ module Google # Rollback. Long periods of # inactivity at the client may cause Cloud Spanner to release a # transaction's locks and abort it. - # Reads performed within a transaction acquire locks on the data - # being read. Writes can only be done at commit time, after all reads - # have been completed. # Conceptually, a read-write transaction consists of zero or more - # reads or SQL queries followed by + # reads or SQL statements followed by # Commit. At any time before # Commit, the client can send a # Rollback request to abort the @@ -2729,10 +2866,58 @@ module Google # restriction also applies to in-progress reads and/or SQL queries whose # timestamp become too old while executing. Reads and SQL queries with # too-old read timestamps fail with the error `FAILED_PRECONDITION`. - # ## + # ## Partitioned DML Transactions + # Partitioned DML transactions are used to execute DML statements with a + # different execution strategy that provides different, and often better, + # scalability properties for large, table-wide operations than DML in a + # ReadWrite transaction. Smaller scoped statements, such as an OLTP workload, + # should prefer using ReadWrite transactions. + # Partitioned DML partitions the keyspace and runs the DML statement on each + # partition in separate, internal transactions. These transactions commit + # automatically when complete, and run independently from one another. + # To reduce lock contention, this execution strategy only acquires read locks + # on rows that match the WHERE clause of the statement. Additionally, the + # smaller per-partition transactions hold locks for less time. + # That said, Partitioned DML is not a drop-in replacement for standard DML used + # in ReadWrite transactions. + # - The DML statement must be fully-partitionable. Specifically, the statement + # must be expressible as the union of many statements which each access only + # a single row of the table. + # - The statement is not applied atomically to all rows of the table. Rather, + # the statement is applied atomically to partitions of the table, in + # independent transactions. Secondary index rows are updated atomically + # with the base table rows. + # - Partitioned DML does not guarantee exactly-once execution semantics + # against a partition. The statement will be applied at least once to each + # partition. It is strongly recommended that the DML statement should be + # idempotent to avoid unexpected results. For instance, it is potentially + # dangerous to run a statement such as + # `UPDATE table SET column = column + 1` as it could be run multiple times + # against some rows. + # - The partitions are committed automatically - there is no support for + # Commit or Rollback. If the call returns an error, or if the client issuing + # the ExecuteSql call dies, it is possible that some rows had the statement + # executed on them successfully. It is also possible that statement was + # never executed against other rows. + # - Partitioned DML transactions may only contain the execution of a single + # DML statement via ExecuteSql or ExecuteStreamingSql. + # - If any error is encountered during the execution of the partitioned DML + # operation (for instance, a UNIQUE INDEX violation, division by zero, or a + # value that cannot be stored due to schema constraints), then the + # operation is stopped at that point and an error is returned. It is + # possible that at this point, some partitions have been committed (or even + # committed multiple times), and other partitions have not been run at all. + # Given the above, Partitioned DML is good fit for large, database-wide, + # operations that are idempotent, such as deleting old rows from a very large + # table. class TransactionOptions include Google::Apis::Core::Hashable + # Message type to initiate a Partitioned DML transaction. + # Corresponds to the JSON property `partitionedDml` + # @return [Google::Apis::SpannerV1::PartitionedDml] + attr_accessor :partitioned_dml + # Message type to initiate a read-only transaction. # Corresponds to the JSON property `readOnly` # @return [Google::Apis::SpannerV1::ReadOnly] @@ -2750,6 +2935,7 @@ module Google # Update properties of this object def update!(**args) + @partitioned_dml = args[:partitioned_dml] if args.key?(:partitioned_dml) @read_only = args[:read_only] if args.key?(:read_only) @read_write = args[:read_write] if args.key?(:read_write) end @@ -2768,7 +2954,7 @@ module Google # re-used for the next transaction. It is not necessary to create a # new session for each transaction. # # Transaction Modes - # Cloud Spanner supports two transaction modes: + # Cloud Spanner supports three transaction modes: # 1. Locking read-write. This type of transaction is the only way # to write data into Cloud Spanner. These transactions rely on # pessimistic locking and, if necessary, two-phase commit. @@ -2779,6 +2965,12 @@ module Google # writes. Snapshot read-only transactions can be configured to # read at timestamps in the past. Snapshot read-only # transactions do not need to be committed. + # 3. Partitioned DML. This type of transaction is used to execute + # a single Partitioned DML statement. Partitioned DML partitions + # the key space and runs the DML statement over each partition + # in parallel using separate, internal transactions that commit + # independently. Partitioned DML transactions do not need to be + # committed. # For transactions that only read, snapshot read-only transactions # provide simpler semantics and are almost always faster. In # particular, read-only transactions do not take locks, so they do @@ -2800,11 +2992,8 @@ module Google # Rollback. Long periods of # inactivity at the client may cause Cloud Spanner to release a # transaction's locks and abort it. - # Reads performed within a transaction acquire locks on the data - # being read. Writes can only be done at commit time, after all reads - # have been completed. # Conceptually, a read-write transaction consists of zero or more - # reads or SQL queries followed by + # reads or SQL statements followed by # Commit. At any time before # Commit, the client can send a # Rollback request to abort the @@ -2930,7 +3119,50 @@ module Google # restriction also applies to in-progress reads and/or SQL queries whose # timestamp become too old while executing. Reads and SQL queries with # too-old read timestamps fail with the error `FAILED_PRECONDITION`. - # ## + # ## Partitioned DML Transactions + # Partitioned DML transactions are used to execute DML statements with a + # different execution strategy that provides different, and often better, + # scalability properties for large, table-wide operations than DML in a + # ReadWrite transaction. Smaller scoped statements, such as an OLTP workload, + # should prefer using ReadWrite transactions. + # Partitioned DML partitions the keyspace and runs the DML statement on each + # partition in separate, internal transactions. These transactions commit + # automatically when complete, and run independently from one another. + # To reduce lock contention, this execution strategy only acquires read locks + # on rows that match the WHERE clause of the statement. Additionally, the + # smaller per-partition transactions hold locks for less time. + # That said, Partitioned DML is not a drop-in replacement for standard DML used + # in ReadWrite transactions. + # - The DML statement must be fully-partitionable. Specifically, the statement + # must be expressible as the union of many statements which each access only + # a single row of the table. + # - The statement is not applied atomically to all rows of the table. Rather, + # the statement is applied atomically to partitions of the table, in + # independent transactions. Secondary index rows are updated atomically + # with the base table rows. + # - Partitioned DML does not guarantee exactly-once execution semantics + # against a partition. The statement will be applied at least once to each + # partition. It is strongly recommended that the DML statement should be + # idempotent to avoid unexpected results. For instance, it is potentially + # dangerous to run a statement such as + # `UPDATE table SET column = column + 1` as it could be run multiple times + # against some rows. + # - The partitions are committed automatically - there is no support for + # Commit or Rollback. If the call returns an error, or if the client issuing + # the ExecuteSql call dies, it is possible that some rows had the statement + # executed on them successfully. It is also possible that statement was + # never executed against other rows. + # - Partitioned DML transactions may only contain the execution of a single + # DML statement via ExecuteSql or ExecuteStreamingSql. + # - If any error is encountered during the execution of the partitioned DML + # operation (for instance, a UNIQUE INDEX violation, division by zero, or a + # value that cannot be stored due to schema constraints), then the + # operation is stopped at that point and an error is returned. It is + # possible that at this point, some partitions have been committed (or even + # committed multiple times), and other partitions have not been run at all. + # Given the above, Partitioned DML is good fit for large, database-wide, + # operations that are idempotent, such as deleting old rows from a very large + # table. # Corresponds to the JSON property `begin` # @return [Google::Apis::SpannerV1::TransactionOptions] attr_accessor :begin @@ -2947,7 +3179,7 @@ module Google # re-used for the next transaction. It is not necessary to create a # new session for each transaction. # # Transaction Modes - # Cloud Spanner supports two transaction modes: + # Cloud Spanner supports three transaction modes: # 1. Locking read-write. This type of transaction is the only way # to write data into Cloud Spanner. These transactions rely on # pessimistic locking and, if necessary, two-phase commit. @@ -2958,6 +3190,12 @@ module Google # writes. Snapshot read-only transactions can be configured to # read at timestamps in the past. Snapshot read-only # transactions do not need to be committed. + # 3. Partitioned DML. This type of transaction is used to execute + # a single Partitioned DML statement. Partitioned DML partitions + # the key space and runs the DML statement over each partition + # in parallel using separate, internal transactions that commit + # independently. Partitioned DML transactions do not need to be + # committed. # For transactions that only read, snapshot read-only transactions # provide simpler semantics and are almost always faster. In # particular, read-only transactions do not take locks, so they do @@ -2979,11 +3217,8 @@ module Google # Rollback. Long periods of # inactivity at the client may cause Cloud Spanner to release a # transaction's locks and abort it. - # Reads performed within a transaction acquire locks on the data - # being read. Writes can only be done at commit time, after all reads - # have been completed. # Conceptually, a read-write transaction consists of zero or more - # reads or SQL queries followed by + # reads or SQL statements followed by # Commit. At any time before # Commit, the client can send a # Rollback request to abort the @@ -3109,7 +3344,50 @@ module Google # restriction also applies to in-progress reads and/or SQL queries whose # timestamp become too old while executing. Reads and SQL queries with # too-old read timestamps fail with the error `FAILED_PRECONDITION`. - # ## + # ## Partitioned DML Transactions + # Partitioned DML transactions are used to execute DML statements with a + # different execution strategy that provides different, and often better, + # scalability properties for large, table-wide operations than DML in a + # ReadWrite transaction. Smaller scoped statements, such as an OLTP workload, + # should prefer using ReadWrite transactions. + # Partitioned DML partitions the keyspace and runs the DML statement on each + # partition in separate, internal transactions. These transactions commit + # automatically when complete, and run independently from one another. + # To reduce lock contention, this execution strategy only acquires read locks + # on rows that match the WHERE clause of the statement. Additionally, the + # smaller per-partition transactions hold locks for less time. + # That said, Partitioned DML is not a drop-in replacement for standard DML used + # in ReadWrite transactions. + # - The DML statement must be fully-partitionable. Specifically, the statement + # must be expressible as the union of many statements which each access only + # a single row of the table. + # - The statement is not applied atomically to all rows of the table. Rather, + # the statement is applied atomically to partitions of the table, in + # independent transactions. Secondary index rows are updated atomically + # with the base table rows. + # - Partitioned DML does not guarantee exactly-once execution semantics + # against a partition. The statement will be applied at least once to each + # partition. It is strongly recommended that the DML statement should be + # idempotent to avoid unexpected results. For instance, it is potentially + # dangerous to run a statement such as + # `UPDATE table SET column = column + 1` as it could be run multiple times + # against some rows. + # - The partitions are committed automatically - there is no support for + # Commit or Rollback. If the call returns an error, or if the client issuing + # the ExecuteSql call dies, it is possible that some rows had the statement + # executed on them successfully. It is also possible that statement was + # never executed against other rows. + # - Partitioned DML transactions may only contain the execution of a single + # DML statement via ExecuteSql or ExecuteStreamingSql. + # - If any error is encountered during the execution of the partitioned DML + # operation (for instance, a UNIQUE INDEX violation, division by zero, or a + # value that cannot be stored due to schema constraints), then the + # operation is stopped at that point and an error is returned. It is + # possible that at this point, some partitions have been committed (or even + # committed multiple times), and other partitions have not been run at all. + # Given the above, Partitioned DML is good fit for large, database-wide, + # operations that are idempotent, such as deleting old rows from a very large + # table. # Corresponds to the JSON property `singleUse` # @return [Google::Apis::SpannerV1::TransactionOptions] attr_accessor :single_use diff --git a/generated/google/apis/spanner_v1/representations.rb b/generated/google/apis/spanner_v1/representations.rb index 348e5592b..a60c62d89 100644 --- a/generated/google/apis/spanner_v1/representations.rb +++ b/generated/google/apis/spanner_v1/representations.rb @@ -232,6 +232,12 @@ module Google include Google::Apis::Core::JsonObjectSupport end + class PartitionedDml + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + class PlanNode class Representation < Google::Apis::Core::JsonRepresentation; end @@ -508,6 +514,7 @@ module Google property :partition_token, :base64 => true, as: 'partitionToken' property :query_mode, as: 'queryMode' property :resume_token, :base64 => true, as: 'resumeToken' + property :seqno, :numeric_string => true, as: 'seqno' property :sql, as: 'sql' property :transaction, as: 'transaction', class: Google::Apis::SpannerV1::TransactionSelector, decorator: Google::Apis::SpannerV1::TransactionSelector::Representation @@ -730,6 +737,12 @@ module Google end end + class PartitionedDml + # @private + class Representation < Google::Apis::Core::JsonRepresentation + end + end + class PlanNode # @private class Representation < Google::Apis::Core::JsonRepresentation @@ -828,6 +841,8 @@ module Google property :query_plan, as: 'queryPlan', class: Google::Apis::SpannerV1::QueryPlan, decorator: Google::Apis::SpannerV1::QueryPlan::Representation hash :query_stats, as: 'queryStats' + property :row_count_exact, :numeric_string => true, as: 'rowCountExact' + property :row_count_lower_bound, :numeric_string => true, as: 'rowCountLowerBound' end end @@ -906,6 +921,8 @@ module Google class TransactionOptions # @private class Representation < Google::Apis::Core::JsonRepresentation + property :partitioned_dml, as: 'partitionedDml', class: Google::Apis::SpannerV1::PartitionedDml, decorator: Google::Apis::SpannerV1::PartitionedDml::Representation + property :read_only, as: 'readOnly', class: Google::Apis::SpannerV1::ReadOnly, decorator: Google::Apis::SpannerV1::ReadOnly::Representation property :read_write, as: 'readWrite', class: Google::Apis::SpannerV1::ReadWrite, decorator: Google::Apis::SpannerV1::ReadWrite::Representation