From 185caf367ecd3b23e5460fb99bf1cb6d4b7e2790 Mon Sep 17 00:00:00 2001 From: Google APIs Date: Sat, 30 Jun 2018 00:36:21 +0000 Subject: [PATCH] Autogenerated update (2018-06-30) Update: - cloudfunctions_v1 - firestore_v1beta1 - jobs_v2 - servicemanagement_v1 - serviceuser_v1 --- api_names_out.yaml | 70 + generated/google/apis/cloudfunctions_v1.rb | 2 +- .../google/apis/cloudfunctions_v1/classes.rb | 31 + .../apis/cloudfunctions_v1/representations.rb | 3 + generated/google/apis/firestore_v1beta1.rb | 2 +- .../google/apis/firestore_v1beta1/classes.rb | 262 +- .../apis/firestore_v1beta1/representations.rb | 80 +- .../google/apis/firestore_v1beta1/service.rb | 32 +- generated/google/apis/jobs_v2.rb | 2 +- generated/google/apis/jobs_v2/classes.rb | 25 +- generated/google/apis/servicemanagement_v1.rb | 2 +- .../apis/servicemanagement_v1/classes.rb | 42 + .../servicemanagement_v1/representations.rb | 17 + generated/google/apis/serviceusage_v1.rb | 39 + .../google/apis/serviceusage_v1/classes.rb | 3889 +++++++++++++++++ .../apis/serviceusage_v1/representations.rb | 1160 +++++ .../google/apis/serviceusage_v1/service.rb | 215 + generated/google/apis/serviceuser_v1.rb | 2 +- .../google/apis/serviceuser_v1/classes.rb | 42 + .../apis/serviceuser_v1/representations.rb | 17 + 20 files changed, 5738 insertions(+), 196 deletions(-) create mode 100644 generated/google/apis/serviceusage_v1.rb create mode 100644 generated/google/apis/serviceusage_v1/classes.rb create mode 100644 generated/google/apis/serviceusage_v1/representations.rb create mode 100644 generated/google/apis/serviceusage_v1/service.rb diff --git a/api_names_out.yaml b/api_names_out.yaml index 02d7babe4..a157bd0e4 100644 --- a/api_names_out.yaml +++ b/api_names_out.yaml @@ -13952,11 +13952,15 @@ "/cloudfunctions:v1/CloudFunction/availableMemoryMb": available_memory_mb "/cloudfunctions:v1/CloudFunction/description": description "/cloudfunctions:v1/CloudFunction/entryPoint": entry_point +"/cloudfunctions:v1/CloudFunction/environmentVariables": environment_variables +"/cloudfunctions:v1/CloudFunction/environmentVariables/environment_variable": environment_variable "/cloudfunctions:v1/CloudFunction/eventTrigger": event_trigger "/cloudfunctions:v1/CloudFunction/httpsTrigger": https_trigger "/cloudfunctions:v1/CloudFunction/labels": labels "/cloudfunctions:v1/CloudFunction/labels/label": label +"/cloudfunctions:v1/CloudFunction/maxInstances": max_instances "/cloudfunctions:v1/CloudFunction/name": name +"/cloudfunctions:v1/CloudFunction/network": network "/cloudfunctions:v1/CloudFunction/runtime": runtime "/cloudfunctions:v1/CloudFunction/serviceAccountEmail": service_account_email "/cloudfunctions:v1/CloudFunction/sourceArchiveUrl": source_archive_url @@ -56771,12 +56775,35 @@ "/firestore:v1beta1/FieldReference": field_reference "/firestore:v1beta1/FieldReference/fieldPath": field_path "/firestore:v1beta1/FieldTransform": field_transform +"/firestore:v1beta1/FieldTransform/appendMissingElements": append_missing_elements "/firestore:v1beta1/FieldTransform/fieldPath": field_path +"/firestore:v1beta1/FieldTransform/removeAllFromArray": remove_all_from_array "/firestore:v1beta1/FieldTransform/setToServerValue": set_to_server_value "/firestore:v1beta1/Filter": filter "/firestore:v1beta1/Filter/compositeFilter": composite_filter "/firestore:v1beta1/Filter/fieldFilter": field_filter "/firestore:v1beta1/Filter/unaryFilter": unary_filter +"/firestore:v1beta1/GoogleFirestoreAdminV1beta1Index": google_firestore_admin_v1beta1_index +"/firestore:v1beta1/GoogleFirestoreAdminV1beta1Index/collectionId": collection_id +"/firestore:v1beta1/GoogleFirestoreAdminV1beta1Index/fields": fields +"/firestore:v1beta1/GoogleFirestoreAdminV1beta1Index/fields/field": field +"/firestore:v1beta1/GoogleFirestoreAdminV1beta1Index/name": name +"/firestore:v1beta1/GoogleFirestoreAdminV1beta1Index/state": state +"/firestore:v1beta1/GoogleFirestoreAdminV1beta1IndexField": google_firestore_admin_v1beta1_index_field +"/firestore:v1beta1/GoogleFirestoreAdminV1beta1IndexField/fieldPath": field_path +"/firestore:v1beta1/GoogleFirestoreAdminV1beta1IndexField/mode": mode +"/firestore:v1beta1/GoogleFirestoreAdminV1beta1ListIndexesResponse": google_firestore_admin_v1beta1_list_indexes_response +"/firestore:v1beta1/GoogleFirestoreAdminV1beta1ListIndexesResponse/indexes": indexes +"/firestore:v1beta1/GoogleFirestoreAdminV1beta1ListIndexesResponse/indexes/index": index +"/firestore:v1beta1/GoogleFirestoreAdminV1beta1ListIndexesResponse/nextPageToken": next_page_token +"/firestore:v1beta1/GoogleLongrunningOperation": google_longrunning_operation +"/firestore:v1beta1/GoogleLongrunningOperation/done": done +"/firestore:v1beta1/GoogleLongrunningOperation/error": error +"/firestore:v1beta1/GoogleLongrunningOperation/metadata": metadata +"/firestore:v1beta1/GoogleLongrunningOperation/metadata/metadatum": metadatum +"/firestore:v1beta1/GoogleLongrunningOperation/name": name +"/firestore:v1beta1/GoogleLongrunningOperation/response": response +"/firestore:v1beta1/GoogleLongrunningOperation/response/response": response "/firestore:v1beta1/Index": index "/firestore:v1beta1/Index/collectionId": collection_id "/firestore:v1beta1/Index/fields": fields @@ -70697,11 +70724,16 @@ "/servicemanagement:v1/MetricDescriptor/displayName": display_name "/servicemanagement:v1/MetricDescriptor/labels": labels "/servicemanagement:v1/MetricDescriptor/labels/label": label +"/servicemanagement:v1/MetricDescriptor/metadata": metadata "/servicemanagement:v1/MetricDescriptor/metricKind": metric_kind "/servicemanagement:v1/MetricDescriptor/name": name "/servicemanagement:v1/MetricDescriptor/type": type "/servicemanagement:v1/MetricDescriptor/unit": unit "/servicemanagement:v1/MetricDescriptor/valueType": value_type +"/servicemanagement:v1/MetricDescriptorMetadata": metric_descriptor_metadata +"/servicemanagement:v1/MetricDescriptorMetadata/ingestDelay": ingest_delay +"/servicemanagement:v1/MetricDescriptorMetadata/launchStage": launch_stage +"/servicemanagement:v1/MetricDescriptorMetadata/samplePeriod": sample_period "/servicemanagement:v1/MetricRule": metric_rule "/servicemanagement:v1/MetricRule/metricCosts": metric_costs "/servicemanagement:v1/MetricRule/metricCosts/metric_cost": metric_cost @@ -71018,6 +71050,11 @@ "/serviceusage:v1/BackendRule/deadline": deadline "/serviceusage:v1/BackendRule/minDeadline": min_deadline "/serviceusage:v1/BackendRule/selector": selector +"/serviceusage:v1/BatchEnableServicesResponse": batch_enable_services_response +"/serviceusage:v1/BatchEnableServicesResponse/failures": failures +"/serviceusage:v1/BatchEnableServicesResponse/failures/failure": failure +"/serviceusage:v1/BatchEnableServicesResponse/services": services +"/serviceusage:v1/BatchEnableServicesResponse/services/service": service "/serviceusage:v1/Billing": billing "/serviceusage:v1/Billing/consumerDestinations": consumer_destinations "/serviceusage:v1/Billing/consumerDestinations/consumer_destination": consumer_destination @@ -71055,6 +71092,8 @@ "/serviceusage:v1/CustomHttpPattern/kind": kind "/serviceusage:v1/CustomHttpPattern/path": path "/serviceusage:v1/DisableServiceRequest": disable_service_request +"/serviceusage:v1/DisableServiceResponse": disable_service_response +"/serviceusage:v1/DisableServiceResponse/service": service "/serviceusage:v1/Documentation": documentation "/serviceusage:v1/Documentation/documentationRootUrl": documentation_root_url "/serviceusage:v1/Documentation/overview": overview @@ -71068,7 +71107,12 @@ "/serviceusage:v1/DocumentationRule/description": description "/serviceusage:v1/DocumentationRule/selector": selector "/serviceusage:v1/Empty": empty +"/serviceusage:v1/EnableFailure": enable_failure +"/serviceusage:v1/EnableFailure/errorMessage": error_message +"/serviceusage:v1/EnableFailure/serviceId": service_id "/serviceusage:v1/EnableServiceRequest": enable_service_request +"/serviceusage:v1/EnableServiceResponse": enable_service_response +"/serviceusage:v1/EnableServiceResponse/service": service "/serviceusage:v1/EnabledState": enabled_state "/serviceusage:v1/EnabledState/state": state "/serviceusage:v1/Endpoint": endpoint @@ -71144,6 +71188,22 @@ "/serviceusage:v1/GoogleApiService/types/type": type "/serviceusage:v1/GoogleApiService/usage": usage "/serviceusage:v1/GoogleApiService/visibility": visibility +"/serviceusage:v1/GoogleApiServiceusageV1Service": google_api_serviceusage_v1_service +"/serviceusage:v1/GoogleApiServiceusageV1Service/config": config +"/serviceusage:v1/GoogleApiServiceusageV1Service/name": name +"/serviceusage:v1/GoogleApiServiceusageV1Service/parent": parent +"/serviceusage:v1/GoogleApiServiceusageV1Service/state": state +"/serviceusage:v1/GoogleApiServiceusageV1ServiceConfig": google_api_serviceusage_v1_service_config +"/serviceusage:v1/GoogleApiServiceusageV1ServiceConfig/apis": apis +"/serviceusage:v1/GoogleApiServiceusageV1ServiceConfig/apis/api": api +"/serviceusage:v1/GoogleApiServiceusageV1ServiceConfig/authentication": authentication +"/serviceusage:v1/GoogleApiServiceusageV1ServiceConfig/documentation": documentation +"/serviceusage:v1/GoogleApiServiceusageV1ServiceConfig/endpoints": endpoints +"/serviceusage:v1/GoogleApiServiceusageV1ServiceConfig/endpoints/endpoint": endpoint +"/serviceusage:v1/GoogleApiServiceusageV1ServiceConfig/name": name +"/serviceusage:v1/GoogleApiServiceusageV1ServiceConfig/quota": quota +"/serviceusage:v1/GoogleApiServiceusageV1ServiceConfig/title": title +"/serviceusage:v1/GoogleApiServiceusageV1ServiceConfig/usage": usage "/serviceusage:v1/Http": http "/serviceusage:v1/Http/fullyDecodeReservedExpansion": fully_decode_reserved_expansion "/serviceusage:v1/Http/rules": rules @@ -71223,11 +71283,16 @@ "/serviceusage:v1/MetricDescriptor/displayName": display_name "/serviceusage:v1/MetricDescriptor/labels": labels "/serviceusage:v1/MetricDescriptor/labels/label": label +"/serviceusage:v1/MetricDescriptor/metadata": metadata "/serviceusage:v1/MetricDescriptor/metricKind": metric_kind "/serviceusage:v1/MetricDescriptor/name": name "/serviceusage:v1/MetricDescriptor/type": type "/serviceusage:v1/MetricDescriptor/unit": unit "/serviceusage:v1/MetricDescriptor/valueType": value_type +"/serviceusage:v1/MetricDescriptorMetadata": metric_descriptor_metadata +"/serviceusage:v1/MetricDescriptorMetadata/ingestDelay": ingest_delay +"/serviceusage:v1/MetricDescriptorMetadata/launchStage": launch_stage +"/serviceusage:v1/MetricDescriptorMetadata/samplePeriod": sample_period "/serviceusage:v1/MetricRule": metric_rule "/serviceusage:v1/MetricRule/metricCosts": metric_costs "/serviceusage:v1/MetricRule/metricCosts/metric_cost": metric_cost @@ -72036,11 +72101,16 @@ "/serviceuser:v1/MetricDescriptor/displayName": display_name "/serviceuser:v1/MetricDescriptor/labels": labels "/serviceuser:v1/MetricDescriptor/labels/label": label +"/serviceuser:v1/MetricDescriptor/metadata": metadata "/serviceuser:v1/MetricDescriptor/metricKind": metric_kind "/serviceuser:v1/MetricDescriptor/name": name "/serviceuser:v1/MetricDescriptor/type": type "/serviceuser:v1/MetricDescriptor/unit": unit "/serviceuser:v1/MetricDescriptor/valueType": value_type +"/serviceuser:v1/MetricDescriptorMetadata": metric_descriptor_metadata +"/serviceuser:v1/MetricDescriptorMetadata/ingestDelay": ingest_delay +"/serviceuser:v1/MetricDescriptorMetadata/launchStage": launch_stage +"/serviceuser:v1/MetricDescriptorMetadata/samplePeriod": sample_period "/serviceuser:v1/MetricRule": metric_rule "/serviceuser:v1/MetricRule/metricCosts": metric_costs "/serviceuser:v1/MetricRule/metricCosts/metric_cost": metric_cost diff --git a/generated/google/apis/cloudfunctions_v1.rb b/generated/google/apis/cloudfunctions_v1.rb index 089215971..54a7f1516 100644 --- a/generated/google/apis/cloudfunctions_v1.rb +++ b/generated/google/apis/cloudfunctions_v1.rb @@ -25,7 +25,7 @@ module Google # @see https://cloud.google.com/functions module CloudfunctionsV1 VERSION = 'V1' - REVISION = '20180619' + REVISION = '20180622' # 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/cloudfunctions_v1/classes.rb b/generated/google/apis/cloudfunctions_v1/classes.rb index 896db0dee..0f45edcda 100644 --- a/generated/google/apis/cloudfunctions_v1/classes.rb +++ b/generated/google/apis/cloudfunctions_v1/classes.rb @@ -100,6 +100,12 @@ module Google # @return [String] attr_accessor :entry_point + # **Beta Feature** + # Environment variables that shall be available during function execution. + # Corresponds to the JSON property `environmentVariables` + # @return [Hash] + attr_accessor :environment_variables + # Describes EventTrigger, used to request events be sent from another # service. # Corresponds to the JSON property `eventTrigger` @@ -116,12 +122,34 @@ module Google # @return [Hash] attr_accessor :labels + # The limit on the maximum number of function instances that may coexist at a + # given time. This feature is currently in alpha, available only for + # whitelisted users. + # Corresponds to the JSON property `maxInstances` + # @return [Fixnum] + attr_accessor :max_instances + # A user-defined name of the function. Function names must be unique # globally and match pattern `projects/*/locations/*/functions/*` # Corresponds to the JSON property `name` # @return [String] attr_accessor :name + # The Google Compute Engine network that this function can connect to. + # Either the fully-qualified URI of the network resource, or + # the short name of the network must be specified. If the network belongs to + # another project, the URI of the resource must be specified + # e.g., + # `https://www.googleapis.com/compute/v1/projects/`project`/global/networks/` + # network`` + # or `my-network`. + # See [the VPC documentation](https://cloud.google.com/compute/docs/vpc) for + # more information on connecting Cloud projects. + # This feature is currently in alpha, available only for whitelisted users. + # Corresponds to the JSON property `network` + # @return [String] + attr_accessor :network + # The runtime in which the function is going to run. If empty, defaults to # Node.js 6. # Corresponds to the JSON property `runtime` @@ -184,10 +212,13 @@ module Google @available_memory_mb = args[:available_memory_mb] if args.key?(:available_memory_mb) @description = args[:description] if args.key?(:description) @entry_point = args[:entry_point] if args.key?(:entry_point) + @environment_variables = args[:environment_variables] if args.key?(:environment_variables) @event_trigger = args[:event_trigger] if args.key?(:event_trigger) @https_trigger = args[:https_trigger] if args.key?(:https_trigger) @labels = args[:labels] if args.key?(:labels) + @max_instances = args[:max_instances] if args.key?(:max_instances) @name = args[:name] if args.key?(:name) + @network = args[:network] if args.key?(:network) @runtime = args[:runtime] if args.key?(:runtime) @service_account_email = args[:service_account_email] if args.key?(:service_account_email) @source_archive_url = args[:source_archive_url] if args.key?(:source_archive_url) diff --git a/generated/google/apis/cloudfunctions_v1/representations.rb b/generated/google/apis/cloudfunctions_v1/representations.rb index b10e2625e..f6b8d49b2 100644 --- a/generated/google/apis/cloudfunctions_v1/representations.rb +++ b/generated/google/apis/cloudfunctions_v1/representations.rb @@ -164,12 +164,15 @@ module Google property :available_memory_mb, as: 'availableMemoryMb' property :description, as: 'description' property :entry_point, as: 'entryPoint' + hash :environment_variables, as: 'environmentVariables' property :event_trigger, as: 'eventTrigger', class: Google::Apis::CloudfunctionsV1::EventTrigger, decorator: Google::Apis::CloudfunctionsV1::EventTrigger::Representation property :https_trigger, as: 'httpsTrigger', class: Google::Apis::CloudfunctionsV1::HttpsTrigger, decorator: Google::Apis::CloudfunctionsV1::HttpsTrigger::Representation hash :labels, as: 'labels' + property :max_instances, as: 'maxInstances' property :name, as: 'name' + property :network, as: 'network' property :runtime, as: 'runtime' property :service_account_email, as: 'serviceAccountEmail' property :source_archive_url, as: 'sourceArchiveUrl' diff --git a/generated/google/apis/firestore_v1beta1.rb b/generated/google/apis/firestore_v1beta1.rb index d460ff23e..745934efe 100644 --- a/generated/google/apis/firestore_v1beta1.rb +++ b/generated/google/apis/firestore_v1beta1.rb @@ -25,7 +25,7 @@ module Google # @see https://cloud.google.com/firestore module FirestoreV1beta1 VERSION = 'V1beta1' - REVISION = '20180605' + REVISION = '20180626' # 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/firestore_v1beta1/classes.rb b/generated/google/apis/firestore_v1beta1/classes.rb index 3df2722a8..9058d97cd 100644 --- a/generated/google/apis/firestore_v1beta1/classes.rb +++ b/generated/google/apis/firestore_v1beta1/classes.rb @@ -660,12 +660,22 @@ module Google class FieldTransform include Google::Apis::Core::Hashable + # An array value. + # Corresponds to the JSON property `appendMissingElements` + # @return [Google::Apis::FirestoreV1beta1::ArrayValue] + attr_accessor :append_missing_elements + # The path of the field. See Document.fields for the field path syntax # reference. # Corresponds to the JSON property `fieldPath` # @return [String] attr_accessor :field_path + # An array value. + # Corresponds to the JSON property `removeAllFromArray` + # @return [Google::Apis::FirestoreV1beta1::ArrayValue] + attr_accessor :remove_all_from_array + # Sets the field to the given server value. # Corresponds to the JSON property `setToServerValue` # @return [String] @@ -677,7 +687,9 @@ module Google # Update properties of this object def update!(**args) + @append_missing_elements = args[:append_missing_elements] if args.key?(:append_missing_elements) @field_path = args[:field_path] if args.key?(:field_path) + @remove_all_from_array = args[:remove_all_from_array] if args.key?(:remove_all_from_array) @set_to_server_value = args[:set_to_server_value] if args.key?(:set_to_server_value) end end @@ -714,7 +726,7 @@ module Google end # An index definition. - class Index + class GoogleFirestoreAdminV1beta1Index include Google::Apis::Core::Hashable # The collection ID to which this index applies. Required. @@ -724,7 +736,7 @@ module Google # The fields to index. # Corresponds to the JSON property `fields` - # @return [Array] + # @return [Array] attr_accessor :fields # The resource name of the index. @@ -753,7 +765,7 @@ module Google end # A field of an index. - class IndexField + class GoogleFirestoreAdminV1beta1IndexField include Google::Apis::Core::Hashable # The path of the field. Must match the field path specification described @@ -780,6 +792,128 @@ module Google end end + # The response for FirestoreAdmin.ListIndexes. + class GoogleFirestoreAdminV1beta1ListIndexesResponse + include Google::Apis::Core::Hashable + + # The indexes. + # Corresponds to the JSON property `indexes` + # @return [Array] + attr_accessor :indexes + + # The standard List next-page token. + # Corresponds to the JSON property `nextPageToken` + # @return [String] + attr_accessor :next_page_token + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @indexes = args[:indexes] if args.key?(:indexes) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + end + end + + # This resource represents a long-running operation that is the result of a + # network API call. + class GoogleLongrunningOperation + 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::FirestoreV1beta1::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 + # An object representing a latitude/longitude pair. This is expressed as a pair # of doubles representing degrees latitude and degrees longitude. Unless # specified otherwise, this must conform to the @@ -885,31 +1019,6 @@ module Google end end - # The response for FirestoreAdmin.ListIndexes. - class ListIndexesResponse - include Google::Apis::Core::Hashable - - # The indexes. - # Corresponds to the JSON property `indexes` - # @return [Array] - attr_accessor :indexes - - # The standard List next-page token. - # Corresponds to the JSON property `nextPageToken` - # @return [String] - attr_accessor :next_page_token - - def initialize(**args) - update!(**args) - end - - # Update properties of this object - def update!(**args) - @indexes = args[:indexes] if args.key?(:indexes) - @next_page_token = args[:next_page_token] if args.key?(:next_page_token) - end - end - # A request for Firestore.Listen class ListenRequest include Google::Apis::Core::Hashable @@ -1020,103 +1129,6 @@ module Google 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::FirestoreV1beta1::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 - # An order on a field. class Order include Google::Apis::Core::Hashable diff --git a/generated/google/apis/firestore_v1beta1/representations.rb b/generated/google/apis/firestore_v1beta1/representations.rb index 1baf4532a..43e8616e9 100644 --- a/generated/google/apis/firestore_v1beta1/representations.rb +++ b/generated/google/apis/firestore_v1beta1/representations.rb @@ -160,13 +160,25 @@ module Google include Google::Apis::Core::JsonObjectSupport end - class Index + class GoogleFirestoreAdminV1beta1Index class Representation < Google::Apis::Core::JsonRepresentation; end include Google::Apis::Core::JsonObjectSupport end - class IndexField + class GoogleFirestoreAdminV1beta1IndexField + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleFirestoreAdminV1beta1ListIndexesResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleLongrunningOperation class Representation < Google::Apis::Core::JsonRepresentation; end include Google::Apis::Core::JsonObjectSupport @@ -196,12 +208,6 @@ module Google include Google::Apis::Core::JsonObjectSupport end - class ListIndexesResponse - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - class ListenRequest class Representation < Google::Apis::Core::JsonRepresentation; end @@ -220,12 +226,6 @@ module Google include Google::Apis::Core::JsonObjectSupport end - class Operation - class Representation < Google::Apis::Core::JsonRepresentation; end - - include Google::Apis::Core::JsonObjectSupport - end - class Order class Representation < Google::Apis::Core::JsonRepresentation; end @@ -534,7 +534,11 @@ module Google class FieldTransform # @private class Representation < Google::Apis::Core::JsonRepresentation + property :append_missing_elements, as: 'appendMissingElements', class: Google::Apis::FirestoreV1beta1::ArrayValue, decorator: Google::Apis::FirestoreV1beta1::ArrayValue::Representation + property :field_path, as: 'fieldPath' + property :remove_all_from_array, as: 'removeAllFromArray', class: Google::Apis::FirestoreV1beta1::ArrayValue, decorator: Google::Apis::FirestoreV1beta1::ArrayValue::Representation + property :set_to_server_value, as: 'setToServerValue' end end @@ -551,18 +555,18 @@ module Google end end - class Index + class GoogleFirestoreAdminV1beta1Index # @private class Representation < Google::Apis::Core::JsonRepresentation property :collection_id, as: 'collectionId' - collection :fields, as: 'fields', class: Google::Apis::FirestoreV1beta1::IndexField, decorator: Google::Apis::FirestoreV1beta1::IndexField::Representation + collection :fields, as: 'fields', class: Google::Apis::FirestoreV1beta1::GoogleFirestoreAdminV1beta1IndexField, decorator: Google::Apis::FirestoreV1beta1::GoogleFirestoreAdminV1beta1IndexField::Representation property :name, as: 'name' property :state, as: 'state' end end - class IndexField + class GoogleFirestoreAdminV1beta1IndexField # @private class Representation < Google::Apis::Core::JsonRepresentation property :field_path, as: 'fieldPath' @@ -570,6 +574,27 @@ module Google end end + class GoogleFirestoreAdminV1beta1ListIndexesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :indexes, as: 'indexes', class: Google::Apis::FirestoreV1beta1::GoogleFirestoreAdminV1beta1Index, decorator: Google::Apis::FirestoreV1beta1::GoogleFirestoreAdminV1beta1Index::Representation + + property :next_page_token, as: 'nextPageToken' + end + end + + class GoogleLongrunningOperation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :done, as: 'done' + property :error, as: 'error', class: Google::Apis::FirestoreV1beta1::Status, decorator: Google::Apis::FirestoreV1beta1::Status::Representation + + hash :metadata, as: 'metadata' + property :name, as: 'name' + hash :response, as: 'response' + end + end + class LatLng # @private class Representation < Google::Apis::Core::JsonRepresentation @@ -603,15 +628,6 @@ module Google end end - class ListIndexesResponse - # @private - class Representation < Google::Apis::Core::JsonRepresentation - collection :indexes, as: 'indexes', class: Google::Apis::FirestoreV1beta1::Index, decorator: Google::Apis::FirestoreV1beta1::Index::Representation - - property :next_page_token, as: 'nextPageToken' - end - end - class ListenRequest # @private class Representation < Google::Apis::Core::JsonRepresentation @@ -646,18 +662,6 @@ module Google end end - class Operation - # @private - class Representation < Google::Apis::Core::JsonRepresentation - property :done, as: 'done' - property :error, as: 'error', class: Google::Apis::FirestoreV1beta1::Status, decorator: Google::Apis::FirestoreV1beta1::Status::Representation - - hash :metadata, as: 'metadata' - property :name, as: 'name' - hash :response, as: 'response' - end - end - class Order # @private class Representation < Google::Apis::Core::JsonRepresentation diff --git a/generated/google/apis/firestore_v1beta1/service.rb b/generated/google/apis/firestore_v1beta1/service.rb index e87380570..69d362b6f 100644 --- a/generated/google/apis/firestore_v1beta1/service.rb +++ b/generated/google/apis/firestore_v1beta1/service.rb @@ -587,7 +587,7 @@ module Google # @param [String] parent # The name of the database this index will apply to. For example: # `projects/`project_id`/databases/`database_id`` - # @param [Google::Apis::FirestoreV1beta1::Index] index_object + # @param [Google::Apis::FirestoreV1beta1::GoogleFirestoreAdminV1beta1Index] google_firestore_admin_v1beta1_index_object # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user @@ -597,20 +597,20 @@ module Google # Request-specific options # # @yield [result, err] Result & error if block supplied - # @yieldparam result [Google::Apis::FirestoreV1beta1::Operation] parsed result object + # @yieldparam result [Google::Apis::FirestoreV1beta1::GoogleLongrunningOperation] parsed result object # @yieldparam err [StandardError] error object if request failed # - # @return [Google::Apis::FirestoreV1beta1::Operation] + # @return [Google::Apis::FirestoreV1beta1::GoogleLongrunningOperation] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required - def create_project_database_index(parent, index_object = nil, fields: nil, quota_user: nil, options: nil, &block) + def create_project_database_index(parent, google_firestore_admin_v1beta1_index_object = nil, fields: nil, quota_user: nil, options: nil, &block) command = make_simple_command(:post, 'v1beta1/{+parent}/indexes', options) - command.request_representation = Google::Apis::FirestoreV1beta1::Index::Representation - command.request_object = index_object - command.response_representation = Google::Apis::FirestoreV1beta1::Operation::Representation - command.response_class = Google::Apis::FirestoreV1beta1::Operation + command.request_representation = Google::Apis::FirestoreV1beta1::GoogleFirestoreAdminV1beta1Index::Representation + command.request_object = google_firestore_admin_v1beta1_index_object + command.response_representation = Google::Apis::FirestoreV1beta1::GoogleLongrunningOperation::Representation + command.response_class = Google::Apis::FirestoreV1beta1::GoogleLongrunningOperation command.params['parent'] = parent unless parent.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? @@ -661,18 +661,18 @@ module Google # Request-specific options # # @yield [result, err] Result & error if block supplied - # @yieldparam result [Google::Apis::FirestoreV1beta1::Index] parsed result object + # @yieldparam result [Google::Apis::FirestoreV1beta1::GoogleFirestoreAdminV1beta1Index] parsed result object # @yieldparam err [StandardError] error object if request failed # - # @return [Google::Apis::FirestoreV1beta1::Index] + # @return [Google::Apis::FirestoreV1beta1::GoogleFirestoreAdminV1beta1Index] # # @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_project_database_index(name, fields: nil, quota_user: nil, options: nil, &block) command = make_simple_command(:get, 'v1beta1/{+name}', options) - command.response_representation = Google::Apis::FirestoreV1beta1::Index::Representation - command.response_class = Google::Apis::FirestoreV1beta1::Index + command.response_representation = Google::Apis::FirestoreV1beta1::GoogleFirestoreAdminV1beta1Index::Representation + command.response_class = Google::Apis::FirestoreV1beta1::GoogleFirestoreAdminV1beta1Index command.params['name'] = name unless name.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? @@ -697,18 +697,18 @@ module Google # Request-specific options # # @yield [result, err] Result & error if block supplied - # @yieldparam result [Google::Apis::FirestoreV1beta1::ListIndexesResponse] parsed result object + # @yieldparam result [Google::Apis::FirestoreV1beta1::GoogleFirestoreAdminV1beta1ListIndexesResponse] parsed result object # @yieldparam err [StandardError] error object if request failed # - # @return [Google::Apis::FirestoreV1beta1::ListIndexesResponse] + # @return [Google::Apis::FirestoreV1beta1::GoogleFirestoreAdminV1beta1ListIndexesResponse] # # @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_project_database_indexes(parent, filter: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) command = make_simple_command(:get, 'v1beta1/{+parent}/indexes', options) - command.response_representation = Google::Apis::FirestoreV1beta1::ListIndexesResponse::Representation - command.response_class = Google::Apis::FirestoreV1beta1::ListIndexesResponse + command.response_representation = Google::Apis::FirestoreV1beta1::GoogleFirestoreAdminV1beta1ListIndexesResponse::Representation + command.response_class = Google::Apis::FirestoreV1beta1::GoogleFirestoreAdminV1beta1ListIndexesResponse command.params['parent'] = parent unless parent.nil? command.query['filter'] = filter unless filter.nil? command.query['pageSize'] = page_size unless page_size.nil? diff --git a/generated/google/apis/jobs_v2.rb b/generated/google/apis/jobs_v2.rb index b618b5aac..3050af01e 100644 --- a/generated/google/apis/jobs_v2.rb +++ b/generated/google/apis/jobs_v2.rb @@ -26,7 +26,7 @@ module Google # @see https://cloud.google.com/job-discovery/docs module JobsV2 VERSION = 'V2' - REVISION = '20180612' + REVISION = '20180627' # 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_v2/classes.rb b/generated/google/apis/jobs_v2/classes.rb index 019c0e6c2..23603f3cc 100644 --- a/generated/google/apis/jobs_v2/classes.rb +++ b/generated/google/apis/jobs_v2/classes.rb @@ -816,10 +816,10 @@ module Google include Google::Apis::Core::Hashable # Required. - # Specifies the custom field key to perform a histogram on. If - # specified without `long_value_buckets` or `long_value_min_max`, a - # histogram on string values of the given `key` is triggered, - # otherwise histogram is performed on long values. + # Specifies the custom field key to perform a histogram on. If specified + # without `long_value_histogram_bucketing_option`, histogram on string values + # of the given `key` is triggered, otherwise histogram is performed on long + # values. # Corresponds to the JSON property `key` # @return [String] attr_accessor :key @@ -2312,7 +2312,7 @@ module Google # Optional. # The employment type filter specifies the employment type of jobs to # search against, such as EmploymentType.FULL_TIME. - # If a value is not specified, jobs in the search results includes any + # If a value is not specified, jobs in the search results include any # employment type. # If multiple values are specified, jobs in the search results include # any of the specified employment types. @@ -2336,7 +2336,7 @@ module Google # Optional. # The location filter specifies geo-regions containing the jobs to # search against. See LocationFilter for more information. - # If a location value isn'tt specified, jobs fitting the other search + # If a location value isn't specified, jobs fitting the other search # criteria are retrieved regardless of where they're located. # If multiple values are specified, jobs are retrieved from any of the # specified locations, and, if different values are specified @@ -2535,8 +2535,9 @@ module Google include Google::Apis::Core::Hashable # Optional. - # The distance from the address in miles to search. - # The default distance is 20 miles and maximum distance is 5,000 miles. + # The distance_in_miles is applied when the location being searched for is + # identified as a city or smaller. When the location being searched for is a + # state or larger, this field is ignored. # Corresponds to the JSON property `distanceInMiles` # @return [Float] attr_accessor :distance_in_miles @@ -2927,8 +2928,8 @@ module Google # job board www.foo.com and career site www.bar.com, then this field is # set to "foo.com" for use on the job board, and "bar.com" for use on the # career site. - # If this field is not available for some reason, send "UNKNOWN". Note that any - # improvements to the `` api_name `` model for a particular tenant site, rely on + # If this field is not available for some reason, send "UNKNOWN". Note that + # any improvements to the service model for a particular tenant site rely on # this field being set correctly to some domain. # Corresponds to the JSON property `domain` # @return [String] @@ -2940,7 +2941,7 @@ module Google # Obfuscate this field for privacy concerns before # providing it to the API. # If this field is not available for some reason, please send "UNKNOWN". Note - # that any improvements to the `` api_name `` model for a particular tenant site, + # that any improvements to the service model for a particular tenant site, # rely on this field being set correctly to some unique session_id. # Corresponds to the JSON property `sessionId` # @return [String] @@ -2953,7 +2954,7 @@ module Google # Obfuscate this field for privacy concerns before # providing it to the service. # If this field is not available for some reason, please send "UNKNOWN". Note - # that any improvements to the `` api_name `` model for a particular tenant site, + # that any improvements to the service model for a particular tenant site, # rely on this field being set correctly to some unique user_id. # Corresponds to the JSON property `userId` # @return [String] diff --git a/generated/google/apis/servicemanagement_v1.rb b/generated/google/apis/servicemanagement_v1.rb index 066afc146..277187572 100644 --- a/generated/google/apis/servicemanagement_v1.rb +++ b/generated/google/apis/servicemanagement_v1.rb @@ -27,7 +27,7 @@ module Google # @see https://cloud.google.com/service-management/ module ServicemanagementV1 VERSION = 'V1' - REVISION = '20180612' + REVISION = '20180622' # 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/servicemanagement_v1/classes.rb b/generated/google/apis/servicemanagement_v1/classes.rb index bd140313e..db550efa3 100644 --- a/generated/google/apis/servicemanagement_v1/classes.rb +++ b/generated/google/apis/servicemanagement_v1/classes.rb @@ -2397,6 +2397,11 @@ module Google # @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::ServicemanagementV1::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` @@ -2489,6 +2494,7 @@ module Google @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) @@ -2497,6 +2503,42 @@ module Google 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 diff --git a/generated/google/apis/servicemanagement_v1/representations.rb b/generated/google/apis/servicemanagement_v1/representations.rb index 020b2fa1e..e5961f4ab 100644 --- a/generated/google/apis/servicemanagement_v1/representations.rb +++ b/generated/google/apis/servicemanagement_v1/representations.rb @@ -346,6 +346,12 @@ module Google 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 @@ -1061,6 +1067,8 @@ module Google property :display_name, as: 'displayName' collection :labels, as: 'labels', class: Google::Apis::ServicemanagementV1::LabelDescriptor, decorator: Google::Apis::ServicemanagementV1::LabelDescriptor::Representation + property :metadata, as: 'metadata', class: Google::Apis::ServicemanagementV1::MetricDescriptorMetadata, decorator: Google::Apis::ServicemanagementV1::MetricDescriptorMetadata::Representation + property :metric_kind, as: 'metricKind' property :name, as: 'name' property :type, as: 'type' @@ -1069,6 +1077,15 @@ module Google 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 diff --git a/generated/google/apis/serviceusage_v1.rb b/generated/google/apis/serviceusage_v1.rb new file mode 100644 index 000000000..504898aee --- /dev/null +++ b/generated/google/apis/serviceusage_v1.rb @@ -0,0 +1,39 @@ +# 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/serviceusage_v1/service.rb' +require 'google/apis/serviceusage_v1/classes.rb' +require 'google/apis/serviceusage_v1/representations.rb' + +module Google + module Apis + # Service Usage API + # + # Enables services that service consumers want to use on Google Cloud Platform, + # lists the available or enabled services, or disables services that service + # consumers no longer use. + # + # @see https://cloud.google.com/service-usage/ + module ServiceusageV1 + VERSION = 'V1' + REVISION = '20180627' + + # 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/serviceusage_v1/classes.rb b/generated/google/apis/serviceusage_v1/classes.rb new file mode 100644 index 000000000..853170bfe --- /dev/null +++ b/generated/google/apis/serviceusage_v1/classes.rb @@ -0,0 +1,3889 @@ +# 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 ServiceusageV1 + + # 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::ServiceusageV1::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::ServiceusageV1::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 + + # Authorization rule for API services. + # It specifies the permission(s) required for an API element for the overall + # API request to succeed. It is typically used to mark request message fields + # that contain the name of the resource and indicates the permissions that + # will be checked on that resource. + # For example: + # package google.storage.v1; + # message CopyObjectRequest ` + # string source = 1 [ + # (google.api.authz).permissions = "storage.objects.get"]; + # string destination = 2 [ + # (google.api.authz).permissions = + # "storage.objects.create,storage.objects.update"]; + # ` + class AuthorizationRule + include Google::Apis::Core::Hashable + + # The required permissions. The acceptable values vary depend on the + # authorization system used. For Google APIs, it should be a comma-separated + # Google IAM permission values. When multiple permissions are listed, the + # semantics is not defined by the system. Additional documentation must + # be provided manually. + # Corresponds to the JSON property `permissions` + # @return [String] + attr_accessor :permissions + + # Selects the API elements 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) + @permissions = args[:permissions] if args.key?(:permissions) + @selector = args[:selector] if args.key?(:selector) + 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 + + # Response message for the `BatchEnableServices` method. + # This response message is assigned to the `response` field of the returned + # Operation when that operation is done. + class BatchEnableServicesResponse + include Google::Apis::Core::Hashable + + # If allow_partial_success is true, and one or more services could not be + # enabled, this field contains the details about each failure. + # Corresponds to the JSON property `failures` + # @return [Array] + attr_accessor :failures + + # The new state of the services after enabling. + # Corresponds to the JSON property `services` + # @return [Array] + attr_accessor :services + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @failures = args[:failures] if args.key?(:failures) + @services = args[:services] if args.key?(:services) + 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 + + # Response message for the `DisableService` method. + # This response message is assigned to the `response` field of the returned + # Operation when that operation is done. + class DisableServiceResponse + include Google::Apis::Core::Hashable + + # A service that is available for use by the consumer. + # Corresponds to the JSON property `service` + # @return [Google::Apis::ServiceusageV1::GoogleApiServiceusageV1Service] + attr_accessor :service + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @service = args[:service] if args.key?(:service) + 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 + + # + class EnableFailure + include Google::Apis::Core::Hashable + + # An error message describing why the service could not be enabled. + # Corresponds to the JSON property `errorMessage` + # @return [String] + attr_accessor :error_message + + # The service id of a service that could not be enabled. + # Corresponds to the JSON property `serviceId` + # @return [String] + attr_accessor :service_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @error_message = args[:error_message] if args.key?(:error_message) + @service_id = args[:service_id] if args.key?(:service_id) + end + end + + # Response message for the `EnableService` method. + # This response message is assigned to the `response` field of the returned + # Operation when that operation is done. + class EnableServiceResponse + include Google::Apis::Core::Hashable + + # A service that is available for use by the consumer. + # Corresponds to the JSON property `service` + # @return [Google::Apis::ServiceusageV1::GoogleApiServiceusageV1Service] + attr_accessor :service + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @service = args[:service] if args.key?(:service) + 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::ServiceusageV1::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::ServiceusageV1::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 + + # `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 GoogleApiService + 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::ServiceusageV1::Authentication] + attr_accessor :authentication + + # `Backend` defines the backend configuration for a service. + # Corresponds to the JSON property `backend` + # @return [Google::Apis::ServiceusageV1::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::ServiceusageV1::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::ServiceusageV1::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::ServiceusageV1::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::ServiceusageV1::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::ServiceusageV1::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::ServiceusageV1::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::ServiceusageV1::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. + # 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::ServiceusageV1::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::ServiceusageV1::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: + # - 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::ServiceusageV1::Quota] + attr_accessor :quota + + # Source information used to create a Service Config + # Corresponds to the JSON property `sourceInfo` + # @return [Google::Apis::ServiceusageV1::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::ServiceusageV1::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::ServiceusageV1::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 + + # A service that is available for use by the consumer. + class GoogleApiServiceusageV1Service + include Google::Apis::Core::Hashable + + # The configuration of the service. + # Corresponds to the JSON property `config` + # @return [Google::Apis::ServiceusageV1::GoogleApiServiceusageV1ServiceConfig] + attr_accessor :config + + # The resource name of the consumer and service. + # A valid name would be: + # - projects/123/services/serviceusage.googleapis.com + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The resource name of the consumer. + # A valid name would be: + # - projects/123 + # Corresponds to the JSON property `parent` + # @return [String] + attr_accessor :parent + + # Whether or not the service has been enabled for use by the consumer. + # Corresponds to the JSON property `state` + # @return [String] + attr_accessor :state + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @config = args[:config] if args.key?(:config) + @name = args[:name] if args.key?(:name) + @parent = args[:parent] if args.key?(:parent) + @state = args[:state] if args.key?(:state) + end + end + + # The configuration of the service. + class GoogleApiServiceusageV1ServiceConfig + include Google::Apis::Core::Hashable + + # A list of API interfaces exported by this service. Contains only the names, + # versions, and method names of the interfaces. + # 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::ServiceusageV1::Authentication] + attr_accessor :authentication + + # `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::ServiceusageV1::Documentation] + attr_accessor :documentation + + # Configuration for network endpoints. Contains only the names and aliases + # of the endpoints. + # Corresponds to the JSON property `endpoints` + # @return [Array] + attr_accessor :endpoints + + # The DNS address at which this service is available. + # An example DNS address would be: + # `calendar.googleapis.com`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # 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: + # - 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::ServiceusageV1::Quota] + attr_accessor :quota + + # The product title for this service. + # Corresponds to the JSON property `title` + # @return [String] + attr_accessor :title + + # Configuration controlling usage of a service. + # Corresponds to the JSON property `usage` + # @return [Google::Apis::ServiceusageV1::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) + @documentation = args[:documentation] if args.key?(:documentation) + @endpoints = args[:endpoints] if args.key?(:endpoints) + @name = args[:name] if args.key?(:name) + @quota = args[:quota] if args.key?(:quota) + @title = args[:title] if args.key?(:title) + @usage = args[:usage] if args.key?(:usage) + 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 + + # `HttpRule` defines the mapping of an RPC method to one or more HTTP + # REST API methods. The mapping specifies how different portions of the RPC + # request message are mapped to URL path, URL query parameters, and + # HTTP request body. The mapping is typically specified as an + # `google.api.http` annotation on the RPC method, + # see "google/api/annotations.proto" for details. + # The mapping consists of a field specifying the path template and + # method kind. The path template can refer to fields in the request + # message, as in the example below which describes a REST GET + # operation on a resource collection of messages: + # service Messaging ` + # rpc GetMessage(GetMessageRequest) returns (Message) ` + # option (google.api.http).get = "/v1/messages/`message_id`/`sub. + # subfield`"; + # ` + # ` + # message GetMessageRequest ` + # message SubMessage ` + # string subfield = 1; + # ` + # string message_id = 1; // mapped to the URL + # SubMessage sub = 2; // `sub.subfield` is url-mapped + # ` + # message Message ` + # string text = 1; // content of the resource + # ` + # The same http annotation can alternatively be expressed inside the + # `GRPC API Configuration` YAML file. + # http: + # rules: + # - selector: .Messaging.GetMessage + # get: /v1/messages/`message_id`/`sub.subfield` + # This definition enables an automatic, bidrectional mapping of HTTP + # JSON to RPC. Example: + # HTTP | RPC + # -----|----- + # `GET /v1/messages/123456/foo` | `GetMessage(message_id: "123456" sub: + # SubMessage(subfield: "foo"))` + # In general, not only fields but also field paths can be referenced + # from a path pattern. Fields mapped to the path pattern cannot be + # repeated and must have a primitive (non-message) type. + # Any fields in the request message which are not bound by the path + # pattern automatically become (optional) HTTP query + # parameters. Assume the following definition of the request message: + # 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 the URL + # int64 revision = 2; // becomes a parameter + # SubMessage sub = 3; // `sub.subfield` becomes a parameter + # ` + # This enables a HTTP JSON to RPC mapping as below: + # HTTP | RPC + # -----|----- + # `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 HTTP parameters must have a + # primitive type or a repeated primitive type. Message types are not + # allowed. In the case of a repeated type, the parameter can be + # repeated in the URL, as in `...?param=A¶m=B`. + # For HTTP method kinds which 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) = ` + # put: "/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 | RPC + # -----|----- + # `PUT /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) = ` + # put: "/v1/messages/`message_id`" + # body: "*" + # `; + # ` + # ` + # message Message ` + # string message_id = 1; + # string text = 2; + # ` + # The following HTTP JSON to RPC mapping is enabled: + # HTTP | RPC + # -----|----- + # `PUT /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 of + # 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 | RPC + # -----|----- + # `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 + # The rules for mapping HTTP path, query parameters, and body fields + # to the request message are as follows: + # 1. The `body` field specifies either `*` or a field path, or is + # omitted. If omitted, it indicates there is no HTTP request body. + # 2. Leaf fields (recursive expansion of nested messages in the + # request) can be classified into three types: + # (a) Matched in the URL template. + # (b) Covered by body (if body is `*`, everything except (a) fields; + # else everything under the body field) + # (c) All other fields. + # 3. URL query parameters found in the HTTP request are mapped to (c) fields. + # 4. Any body sent with an HTTP request can contain only (b) fields. + # The syntax of the path template is as follows: + # Template = "/" Segments [ Verb ] ; + # Segments = Segment ` "/" Segment ` ; + # Segment = "*" | "**" | LITERAL | Variable ; + # Variable = "`" FieldPath [ "=" Segments ] "`" ; + # FieldPath = IDENT ` "." IDENT ` ; + # Verb = ":" LITERAL ; + # The syntax `*` matches a single path segment. The syntax `**` matches zero + # or more path segments, which must be the last part of the path except the + # `Verb`. The syntax `LITERAL` matches literal text in the path. + # 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=*``. + # If a variable contains exactly one path segment, such as `"`var`"` or + # `"`var=*`"`, when such a variable is expanded into a URL path, all characters + # except `[-_.~0-9a-zA-Z]` are percent-encoded. Such variables show up in the + # Discovery Document as ``var``. + # If a variable contains one or more path segments, such as `"`var=foo/*`"` + # or `"`var=**`"`, when such a variable is expanded into a URL path, all + # characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. Such variables + # show up in the Discovery Document as ``+var``. + # NOTE: While the single segment variable matches the semantics of + # [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 + # Simple String Expansion, the multi segment variable **does not** match + # RFC 6570 Reserved Expansion. The reason is that the Reserved Expansion + # does not expand special characters like `?` and `#`, which would lead + # to invalid URLs. + # NOTE: the field paths in variables and in the `body` must not refer to + # repeated fields or map fields. + 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 + + # Specifies the permission(s) required for an API element for the overall + # API request to succeed. It is typically used to mark request message fields + # that contain the name of the resource and indicates the permissions that + # will be checked on that resource. + # Corresponds to the JSON property `authorizations` + # @return [Array] + attr_accessor :authorizations + + # The name of the request field whose value is mapped to the HTTP body, or + # `*` for mapping all fields not captured by the path pattern to the HTTP + # body. NOTE: the referred field must not be a repeated field and must be + # present at the top-level of 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::ServiceusageV1::CustomHttpPattern] + attr_accessor :custom + + # Used for deleting a resource. + # Corresponds to the JSON property `delete` + # @return [String] + attr_accessor :delete + + # Used for listing and getting information about resources. + # Corresponds to the JSON property `get` + # @return [String] + attr_accessor :get + + # Defines the Media configuration for a service in case of a download. + # Use this only for Scotty Requests. Do not use this for media support using + # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to + # your configuration for Bytestream methods. + # Corresponds to the JSON property `mediaDownload` + # @return [Google::Apis::ServiceusageV1::MediaDownload] + attr_accessor :media_download + + # Defines the Media configuration for a service in case of an upload. + # Use this only for Scotty Requests. Do not use this for media support using + # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to + # your configuration for Bytestream methods. + # Corresponds to the JSON property `mediaUpload` + # @return [Google::Apis::ServiceusageV1::MediaUpload] + attr_accessor :media_upload + + # Used for updating a resource. + # Corresponds to the JSON property `patch` + # @return [String] + attr_accessor :patch + + # Used for creating a resource. + # Corresponds to the JSON property `post` + # @return [String] + attr_accessor :post + + # Used for updating a resource. + # Corresponds to the JSON property `put` + # @return [String] + attr_accessor :put + + # DO NOT USE. This is an experimental field. + # Optional. The REST collection name is by default derived from the URL + # pattern. If specified, this field overrides the default collection name. + # Example: + # rpc AddressesAggregatedList(AddressesAggregatedListRequest) + # returns (AddressesAggregatedListResponse) ` + # option (google.api.http) = ` + # get: "/v1/projects/`project_id`/aggregated/addresses" + # rest_collection: "projects.addresses" + # `; + # ` + # This method has the automatically derived collection name + # "projects.aggregated". Because, semantically, this rpc is actually an + # operation on the "projects.addresses" collection, the `rest_collection` + # field is configured to override the derived collection name. + # Corresponds to the JSON property `restCollection` + # @return [String] + attr_accessor :rest_collection + + # DO NOT USE. This is an experimental field. + # Optional. The rest method name is by default derived from the URL + # pattern. If specified, this field overrides the default method name. + # Example: + # rpc CreateResource(CreateResourceRequest) + # returns (CreateResourceResponse) ` + # option (google.api.http) = ` + # post: "/v1/resources", + # body: "resource", + # rest_method_name: "insert" + # `; + # ` + # This method has the automatically derived rest method name + # "create", but for backwards compatibility with apiary, it is specified as + # insert. + # Corresponds to the JSON property `restMethodName` + # @return [String] + attr_accessor :rest_method_name + + # Selects 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) + @additional_bindings = args[:additional_bindings] if args.key?(:additional_bindings) + @authorizations = args[:authorizations] if args.key?(:authorizations) + @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) + @media_download = args[:media_download] if args.key?(:media_download) + @media_upload = args[:media_upload] if args.key?(:media_upload) + @patch = args[:patch] if args.key?(:patch) + @post = args[:post] if args.key?(:post) + @put = args[:put] if args.key?(:put) + @rest_collection = args[:rest_collection] if args.key?(:rest_collection) + @rest_method_name = args[:rest_method_name] if args.key?(:rest_method_name) + @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 + + # Defines the Media configuration for a service in case of a download. + # Use this only for Scotty Requests. Do not use this for media support using + # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to + # your configuration for Bytestream methods. + class MediaDownload + include Google::Apis::Core::Hashable + + # A boolean that determines whether a notification for the completion of a + # download should be sent to the backend. + # Corresponds to the JSON property `completeNotification` + # @return [Boolean] + attr_accessor :complete_notification + alias_method :complete_notification?, :complete_notification + + # DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED. + # Specify name of the download service if one is used for download. + # Corresponds to the JSON property `downloadService` + # @return [String] + attr_accessor :download_service + + # Name of the Scotty dropzone to use for the current API. + # Corresponds to the JSON property `dropzone` + # @return [String] + attr_accessor :dropzone + + # Whether download is enabled. + # Corresponds to the JSON property `enabled` + # @return [Boolean] + attr_accessor :enabled + alias_method :enabled?, :enabled + + # Optional maximum acceptable size for direct download. + # The size is specified in bytes. + # Corresponds to the JSON property `maxDirectDownloadSize` + # @return [Fixnum] + attr_accessor :max_direct_download_size + + # A boolean that determines if direct download from ESF should be used for + # download of this media. + # Corresponds to the JSON property `useDirectDownload` + # @return [Boolean] + attr_accessor :use_direct_download + alias_method :use_direct_download?, :use_direct_download + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @complete_notification = args[:complete_notification] if args.key?(:complete_notification) + @download_service = args[:download_service] if args.key?(:download_service) + @dropzone = args[:dropzone] if args.key?(:dropzone) + @enabled = args[:enabled] if args.key?(:enabled) + @max_direct_download_size = args[:max_direct_download_size] if args.key?(:max_direct_download_size) + @use_direct_download = args[:use_direct_download] if args.key?(:use_direct_download) + end + end + + # Defines the Media configuration for a service in case of an upload. + # Use this only for Scotty Requests. Do not use this for media support using + # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to + # your configuration for Bytestream methods. + class MediaUpload + include Google::Apis::Core::Hashable + + # A boolean that determines whether a notification for the completion of an + # upload should be sent to the backend. These notifications will not be seen + # by the client and will not consume quota. + # Corresponds to the JSON property `completeNotification` + # @return [Boolean] + attr_accessor :complete_notification + alias_method :complete_notification?, :complete_notification + + # Name of the Scotty dropzone to use for the current API. + # Corresponds to the JSON property `dropzone` + # @return [String] + attr_accessor :dropzone + + # Whether upload is enabled. + # Corresponds to the JSON property `enabled` + # @return [Boolean] + attr_accessor :enabled + alias_method :enabled?, :enabled + + # Optional maximum acceptable size for an upload. + # The size is specified in bytes. + # Corresponds to the JSON property `maxSize` + # @return [Fixnum] + attr_accessor :max_size + + # An array of mimetype patterns. Esf will only accept uploads that match one + # of the given patterns. + # Corresponds to the JSON property `mimeTypes` + # @return [Array] + attr_accessor :mime_types + + # Whether to receive a notification for progress changes of media upload. + # Corresponds to the JSON property `progressNotification` + # @return [Boolean] + attr_accessor :progress_notification + alias_method :progress_notification?, :progress_notification + + # Whether to receive a notification on the start of media upload. + # Corresponds to the JSON property `startNotification` + # @return [Boolean] + attr_accessor :start_notification + alias_method :start_notification?, :start_notification + + # DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED. + # Specify name of the upload service if one is used for upload. + # Corresponds to the JSON property `uploadService` + # @return [String] + attr_accessor :upload_service + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @complete_notification = args[:complete_notification] if args.key?(:complete_notification) + @dropzone = args[:dropzone] if args.key?(:dropzone) + @enabled = args[:enabled] if args.key?(:enabled) + @max_size = args[:max_size] if args.key?(:max_size) + @mime_types = args[:mime_types] if args.key?(:mime_types) + @progress_notification = args[:progress_notification] if args.key?(:progress_notification) + @start_notification = args[:start_notification] if args.key?(:start_notification) + @upload_service = args[:upload_service] if args.key?(:upload_service) + 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::ServiceusageV1::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 custom metric types have the DNS name + # `custom.googleapis.com`. Metric types should use a natural hierarchical + # grouping. For example: + # "custom.googleapis.com/invoice/paid/amount" + # "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::ServiceusageV1::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 + + # The metadata associated with a long running operation resource. + class OperationMetadata + include Google::Apis::Core::Hashable + + # Percentage of completion of this operation, ranging from 0 to 100. + # Corresponds to the JSON property `progressPercentage` + # @return [Fixnum] + attr_accessor :progress_percentage + + # The full name of the resources that this operation is directly + # associated with. + # Corresponds to the JSON property `resourceNames` + # @return [Array] + attr_accessor :resource_names + + # The start time of the operation. + # Corresponds to the JSON property `startTime` + # @return [String] + attr_accessor :start_time + + # Detailed status information for each step. The order is undetermined. + # Corresponds to the JSON property `steps` + # @return [Array] + attr_accessor :steps + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @progress_percentage = args[:progress_percentage] if args.key?(:progress_percentage) + @resource_names = args[:resource_names] if args.key?(:resource_names) + @start_time = args[:start_time] if args.key?(:start_time) + @steps = args[:steps] if args.key?(:steps) + 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: + # - 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 + + # `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 + + # Represents the status of one operation step. + class Step + include Google::Apis::Core::Hashable + + # The short description of the step. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # The status code. + # Corresponds to the JSON property `status` + # @return [String] + attr_accessor :status + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @description = args[:description] if args.key?(:description) + @status = args[:status] if args.key?(:status) + 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::ServiceusageV1::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/serviceusage_v1/representations.rb b/generated/google/apis/serviceusage_v1/representations.rb new file mode 100644 index 000000000..89b6a7047 --- /dev/null +++ b/generated/google/apis/serviceusage_v1/representations.rb @@ -0,0 +1,1160 @@ +# 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 ServiceusageV1 + + 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 AuthorizationRule + 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 BatchEnableServicesResponse + 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 DisableServiceResponse + 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 EnableFailure + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class EnableServiceResponse + 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 GoogleApiService + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleApiServiceusageV1Service + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleApiServiceusageV1ServiceConfig + 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 MediaDownload + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class MediaUpload + 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 OperationMetadata + 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 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 Step + 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 Api + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :methods_prop, as: 'methods', class: Google::Apis::ServiceusageV1::MethodProp, decorator: Google::Apis::ServiceusageV1::MethodProp::Representation + + collection :mixins, as: 'mixins', class: Google::Apis::ServiceusageV1::Mixin, decorator: Google::Apis::ServiceusageV1::Mixin::Representation + + property :name, as: 'name' + collection :options, as: 'options', class: Google::Apis::ServiceusageV1::Option, decorator: Google::Apis::ServiceusageV1::Option::Representation + + property :source_context, as: 'sourceContext', class: Google::Apis::ServiceusageV1::SourceContext, decorator: Google::Apis::ServiceusageV1::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::ServiceusageV1::AuthProvider, decorator: Google::Apis::ServiceusageV1::AuthProvider::Representation + + collection :rules, as: 'rules', class: Google::Apis::ServiceusageV1::AuthenticationRule, decorator: Google::Apis::ServiceusageV1::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::ServiceusageV1::OAuthRequirements, decorator: Google::Apis::ServiceusageV1::OAuthRequirements::Representation + + collection :requirements, as: 'requirements', class: Google::Apis::ServiceusageV1::AuthRequirement, decorator: Google::Apis::ServiceusageV1::AuthRequirement::Representation + + property :selector, as: 'selector' + end + end + + class AuthorizationConfig + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :provider, as: 'provider' + end + end + + class AuthorizationRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :permissions, as: 'permissions' + property :selector, as: 'selector' + end + end + + class Backend + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :rules, as: 'rules', class: Google::Apis::ServiceusageV1::BackendRule, decorator: Google::Apis::ServiceusageV1::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 BatchEnableServicesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :failures, as: 'failures', class: Google::Apis::ServiceusageV1::EnableFailure, decorator: Google::Apis::ServiceusageV1::EnableFailure::Representation + + collection :services, as: 'services', class: Google::Apis::ServiceusageV1::GoogleApiServiceusageV1Service, decorator: Google::Apis::ServiceusageV1::GoogleApiServiceusageV1Service::Representation + + end + end + + class Billing + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :consumer_destinations, as: 'consumerDestinations', class: Google::Apis::ServiceusageV1::BillingDestination, decorator: Google::Apis::ServiceusageV1::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::ServiceusageV1::ContextRule, decorator: Google::Apis::ServiceusageV1::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::ServiceusageV1::CustomErrorRule, decorator: Google::Apis::ServiceusageV1::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 DisableServiceResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :service, as: 'service', class: Google::Apis::ServiceusageV1::GoogleApiServiceusageV1Service, decorator: Google::Apis::ServiceusageV1::GoogleApiServiceusageV1Service::Representation + + 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::ServiceusageV1::Page, decorator: Google::Apis::ServiceusageV1::Page::Representation + + collection :rules, as: 'rules', class: Google::Apis::ServiceusageV1::DocumentationRule, decorator: Google::Apis::ServiceusageV1::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 EnableFailure + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :error_message, as: 'errorMessage' + property :service_id, as: 'serviceId' + end + end + + class EnableServiceResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :service, as: 'service', class: Google::Apis::ServiceusageV1::GoogleApiServiceusageV1Service, decorator: Google::Apis::ServiceusageV1::GoogleApiServiceusageV1Service::Representation + + 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::ServiceusageV1::EnumValue, decorator: Google::Apis::ServiceusageV1::EnumValue::Representation + + property :name, as: 'name' + collection :options, as: 'options', class: Google::Apis::ServiceusageV1::Option, decorator: Google::Apis::ServiceusageV1::Option::Representation + + property :source_context, as: 'sourceContext', class: Google::Apis::ServiceusageV1::SourceContext, decorator: Google::Apis::ServiceusageV1::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::ServiceusageV1::Option, decorator: Google::Apis::ServiceusageV1::Option::Representation + + end + end + + class Experimental + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :authorization, as: 'authorization', class: Google::Apis::ServiceusageV1::AuthorizationConfig, decorator: Google::Apis::ServiceusageV1::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::ServiceusageV1::Option, decorator: Google::Apis::ServiceusageV1::Option::Representation + + property :packed, as: 'packed' + property :type_url, as: 'typeUrl' + end + end + + class GoogleApiService + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :apis, as: 'apis', class: Google::Apis::ServiceusageV1::Api, decorator: Google::Apis::ServiceusageV1::Api::Representation + + property :authentication, as: 'authentication', class: Google::Apis::ServiceusageV1::Authentication, decorator: Google::Apis::ServiceusageV1::Authentication::Representation + + property :backend, as: 'backend', class: Google::Apis::ServiceusageV1::Backend, decorator: Google::Apis::ServiceusageV1::Backend::Representation + + property :billing, as: 'billing', class: Google::Apis::ServiceusageV1::Billing, decorator: Google::Apis::ServiceusageV1::Billing::Representation + + property :config_version, as: 'configVersion' + property :context, as: 'context', class: Google::Apis::ServiceusageV1::Context, decorator: Google::Apis::ServiceusageV1::Context::Representation + + property :control, as: 'control', class: Google::Apis::ServiceusageV1::Control, decorator: Google::Apis::ServiceusageV1::Control::Representation + + property :custom_error, as: 'customError', class: Google::Apis::ServiceusageV1::CustomError, decorator: Google::Apis::ServiceusageV1::CustomError::Representation + + property :documentation, as: 'documentation', class: Google::Apis::ServiceusageV1::Documentation, decorator: Google::Apis::ServiceusageV1::Documentation::Representation + + collection :endpoints, as: 'endpoints', class: Google::Apis::ServiceusageV1::Endpoint, decorator: Google::Apis::ServiceusageV1::Endpoint::Representation + + collection :enums, as: 'enums', class: Google::Apis::ServiceusageV1::Enum, decorator: Google::Apis::ServiceusageV1::Enum::Representation + + property :experimental, as: 'experimental', class: Google::Apis::ServiceusageV1::Experimental, decorator: Google::Apis::ServiceusageV1::Experimental::Representation + + property :http, as: 'http', class: Google::Apis::ServiceusageV1::Http, decorator: Google::Apis::ServiceusageV1::Http::Representation + + property :id, as: 'id' + property :logging, as: 'logging', class: Google::Apis::ServiceusageV1::Logging, decorator: Google::Apis::ServiceusageV1::Logging::Representation + + collection :logs, as: 'logs', class: Google::Apis::ServiceusageV1::LogDescriptor, decorator: Google::Apis::ServiceusageV1::LogDescriptor::Representation + + collection :metrics, as: 'metrics', class: Google::Apis::ServiceusageV1::MetricDescriptor, decorator: Google::Apis::ServiceusageV1::MetricDescriptor::Representation + + collection :monitored_resources, as: 'monitoredResources', class: Google::Apis::ServiceusageV1::MonitoredResourceDescriptor, decorator: Google::Apis::ServiceusageV1::MonitoredResourceDescriptor::Representation + + property :monitoring, as: 'monitoring', class: Google::Apis::ServiceusageV1::Monitoring, decorator: Google::Apis::ServiceusageV1::Monitoring::Representation + + property :name, as: 'name' + property :producer_project_id, as: 'producerProjectId' + property :quota, as: 'quota', class: Google::Apis::ServiceusageV1::Quota, decorator: Google::Apis::ServiceusageV1::Quota::Representation + + property :source_info, as: 'sourceInfo', class: Google::Apis::ServiceusageV1::SourceInfo, decorator: Google::Apis::ServiceusageV1::SourceInfo::Representation + + property :system_parameters, as: 'systemParameters', class: Google::Apis::ServiceusageV1::SystemParameters, decorator: Google::Apis::ServiceusageV1::SystemParameters::Representation + + collection :system_types, as: 'systemTypes', class: Google::Apis::ServiceusageV1::Type, decorator: Google::Apis::ServiceusageV1::Type::Representation + + property :title, as: 'title' + collection :types, as: 'types', class: Google::Apis::ServiceusageV1::Type, decorator: Google::Apis::ServiceusageV1::Type::Representation + + property :usage, as: 'usage', class: Google::Apis::ServiceusageV1::Usage, decorator: Google::Apis::ServiceusageV1::Usage::Representation + + end + end + + class GoogleApiServiceusageV1Service + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :config, as: 'config', class: Google::Apis::ServiceusageV1::GoogleApiServiceusageV1ServiceConfig, decorator: Google::Apis::ServiceusageV1::GoogleApiServiceusageV1ServiceConfig::Representation + + property :name, as: 'name' + property :parent, as: 'parent' + property :state, as: 'state' + end + end + + class GoogleApiServiceusageV1ServiceConfig + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :apis, as: 'apis', class: Google::Apis::ServiceusageV1::Api, decorator: Google::Apis::ServiceusageV1::Api::Representation + + property :authentication, as: 'authentication', class: Google::Apis::ServiceusageV1::Authentication, decorator: Google::Apis::ServiceusageV1::Authentication::Representation + + property :documentation, as: 'documentation', class: Google::Apis::ServiceusageV1::Documentation, decorator: Google::Apis::ServiceusageV1::Documentation::Representation + + collection :endpoints, as: 'endpoints', class: Google::Apis::ServiceusageV1::Endpoint, decorator: Google::Apis::ServiceusageV1::Endpoint::Representation + + property :name, as: 'name' + property :quota, as: 'quota', class: Google::Apis::ServiceusageV1::Quota, decorator: Google::Apis::ServiceusageV1::Quota::Representation + + property :title, as: 'title' + property :usage, as: 'usage', class: Google::Apis::ServiceusageV1::Usage, decorator: Google::Apis::ServiceusageV1::Usage::Representation + + 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::ServiceusageV1::HttpRule, decorator: Google::Apis::ServiceusageV1::HttpRule::Representation + + end + end + + class HttpRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :additional_bindings, as: 'additionalBindings', class: Google::Apis::ServiceusageV1::HttpRule, decorator: Google::Apis::ServiceusageV1::HttpRule::Representation + + collection :authorizations, as: 'authorizations', class: Google::Apis::ServiceusageV1::AuthorizationRule, decorator: Google::Apis::ServiceusageV1::AuthorizationRule::Representation + + property :body, as: 'body' + property :custom, as: 'custom', class: Google::Apis::ServiceusageV1::CustomHttpPattern, decorator: Google::Apis::ServiceusageV1::CustomHttpPattern::Representation + + property :delete, as: 'delete' + property :get, as: 'get' + property :media_download, as: 'mediaDownload', class: Google::Apis::ServiceusageV1::MediaDownload, decorator: Google::Apis::ServiceusageV1::MediaDownload::Representation + + property :media_upload, as: 'mediaUpload', class: Google::Apis::ServiceusageV1::MediaUpload, decorator: Google::Apis::ServiceusageV1::MediaUpload::Representation + + property :patch, as: 'patch' + property :post, as: 'post' + property :put, as: 'put' + property :rest_collection, as: 'restCollection' + property :rest_method_name, as: 'restMethodName' + 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::ServiceusageV1::Operation, decorator: Google::Apis::ServiceusageV1::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::ServiceusageV1::LabelDescriptor, decorator: Google::Apis::ServiceusageV1::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::ServiceusageV1::LoggingDestination, decorator: Google::Apis::ServiceusageV1::LoggingDestination::Representation + + collection :producer_destinations, as: 'producerDestinations', class: Google::Apis::ServiceusageV1::LoggingDestination, decorator: Google::Apis::ServiceusageV1::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 MediaDownload + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :complete_notification, as: 'completeNotification' + property :download_service, as: 'downloadService' + property :dropzone, as: 'dropzone' + property :enabled, as: 'enabled' + property :max_direct_download_size, :numeric_string => true, as: 'maxDirectDownloadSize' + property :use_direct_download, as: 'useDirectDownload' + end + end + + class MediaUpload + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :complete_notification, as: 'completeNotification' + property :dropzone, as: 'dropzone' + property :enabled, as: 'enabled' + property :max_size, :numeric_string => true, as: 'maxSize' + collection :mime_types, as: 'mimeTypes' + property :progress_notification, as: 'progressNotification' + property :start_notification, as: 'startNotification' + property :upload_service, as: 'uploadService' + end + end + + class MethodProp + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + collection :options, as: 'options', class: Google::Apis::ServiceusageV1::Option, decorator: Google::Apis::ServiceusageV1::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::ServiceusageV1::LabelDescriptor, decorator: Google::Apis::ServiceusageV1::LabelDescriptor::Representation + + property :metadata, as: 'metadata', class: Google::Apis::ServiceusageV1::MetricDescriptorMetadata, decorator: Google::Apis::ServiceusageV1::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::ServiceusageV1::LabelDescriptor, decorator: Google::Apis::ServiceusageV1::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::ServiceusageV1::MonitoringDestination, decorator: Google::Apis::ServiceusageV1::MonitoringDestination::Representation + + collection :producer_destinations, as: 'producerDestinations', class: Google::Apis::ServiceusageV1::MonitoringDestination, decorator: Google::Apis::ServiceusageV1::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::ServiceusageV1::Status, decorator: Google::Apis::ServiceusageV1::Status::Representation + + hash :metadata, as: 'metadata' + property :name, as: 'name' + hash :response, as: 'response' + end + end + + class OperationMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :progress_percentage, as: 'progressPercentage' + collection :resource_names, as: 'resourceNames' + property :start_time, as: 'startTime' + collection :steps, as: 'steps', class: Google::Apis::ServiceusageV1::Step, decorator: Google::Apis::ServiceusageV1::Step::Representation + + 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::ServiceusageV1::Page, decorator: Google::Apis::ServiceusageV1::Page::Representation + + end + end + + class Quota + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :limits, as: 'limits', class: Google::Apis::ServiceusageV1::QuotaLimit, decorator: Google::Apis::ServiceusageV1::QuotaLimit::Representation + + collection :metric_rules, as: 'metricRules', class: Google::Apis::ServiceusageV1::MetricRule, decorator: Google::Apis::ServiceusageV1::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 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 Step + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :description, as: 'description' + property :status, as: 'status' + 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::ServiceusageV1::SystemParameter, decorator: Google::Apis::ServiceusageV1::SystemParameter::Representation + + property :selector, as: 'selector' + end + end + + class SystemParameters + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :rules, as: 'rules', class: Google::Apis::ServiceusageV1::SystemParameterRule, decorator: Google::Apis::ServiceusageV1::SystemParameterRule::Representation + + end + end + + class Type + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :fields, as: 'fields', class: Google::Apis::ServiceusageV1::Field, decorator: Google::Apis::ServiceusageV1::Field::Representation + + property :name, as: 'name' + collection :oneofs, as: 'oneofs' + collection :options, as: 'options', class: Google::Apis::ServiceusageV1::Option, decorator: Google::Apis::ServiceusageV1::Option::Representation + + property :source_context, as: 'sourceContext', class: Google::Apis::ServiceusageV1::SourceContext, decorator: Google::Apis::ServiceusageV1::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::ServiceusageV1::UsageRule, decorator: Google::Apis::ServiceusageV1::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/serviceusage_v1/service.rb b/generated/google/apis/serviceusage_v1/service.rb new file mode 100644 index 000000000..238341be5 --- /dev/null +++ b/generated/google/apis/serviceusage_v1/service.rb @@ -0,0 +1,215 @@ +# 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 ServiceusageV1 + # Service Usage API + # + # Enables services that service consumers want to use on Google Cloud Platform, + # lists the available or enabled services, or disables services that service + # consumers no longer use. + # + # @example + # require 'google/apis/serviceusage_v1' + # + # Serviceusage = Google::Apis::ServiceusageV1 # Alias the module + # service = Serviceusage::ServiceUsageService.new + # + # @see https://cloud.google.com/service-usage/ + class ServiceUsageService < 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://serviceusage.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::ServiceusageV1::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::ServiceusageV1::Empty] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServiceusageV1::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::ServiceusageV1::CancelOperationRequest::Representation + command.request_object = cancel_operation_request_object + command.response_representation = Google::Apis::ServiceusageV1::Empty::Representation + command.response_class = Google::Apis::ServiceusageV1::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::ServiceusageV1::Empty] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServiceusageV1::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::ServiceusageV1::Empty::Representation + command.response_class = Google::Apis::ServiceusageV1::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::ServiceusageV1::Operation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServiceusageV1::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::ServiceusageV1::Operation::Representation + command.response_class = Google::Apis::ServiceusageV1::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] filter + # The standard list filter. + # @param [String] name + # The name of the operation's parent resource. + # @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::ServiceusageV1::ListOperationsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServiceusageV1::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(filter: nil, name: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/operations', options) + command.response_representation = Google::Apis::ServiceusageV1::ListOperationsResponse::Representation + command.response_class = Google::Apis::ServiceusageV1::ListOperationsResponse + command.query['filter'] = filter unless filter.nil? + command.query['name'] = name unless name.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/serviceuser_v1.rb b/generated/google/apis/serviceuser_v1.rb index b3c09e7f5..d6cf10398 100644 --- a/generated/google/apis/serviceuser_v1.rb +++ b/generated/google/apis/serviceuser_v1.rb @@ -27,7 +27,7 @@ module Google # @see https://cloud.google.com/service-management/ module ServiceuserV1 VERSION = 'V1' - REVISION = '20180621' + REVISION = '20180622' # 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/serviceuser_v1/classes.rb b/generated/google/apis/serviceuser_v1/classes.rb index 773228246..e2dd9a3b3 100644 --- a/generated/google/apis/serviceuser_v1/classes.rb +++ b/generated/google/apis/serviceuser_v1/classes.rb @@ -1800,6 +1800,11 @@ module Google # @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::ServiceuserV1::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` @@ -1892,6 +1897,7 @@ module Google @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) @@ -1900,6 +1906,42 @@ module Google 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 diff --git a/generated/google/apis/serviceuser_v1/representations.rb b/generated/google/apis/serviceuser_v1/representations.rb index 5bd7ad54e..ba202bf55 100644 --- a/generated/google/apis/serviceuser_v1/representations.rb +++ b/generated/google/apis/serviceuser_v1/representations.rb @@ -238,6 +238,12 @@ module Google 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 @@ -756,6 +762,8 @@ module Google property :display_name, as: 'displayName' collection :labels, as: 'labels', class: Google::Apis::ServiceuserV1::LabelDescriptor, decorator: Google::Apis::ServiceuserV1::LabelDescriptor::Representation + property :metadata, as: 'metadata', class: Google::Apis::ServiceuserV1::MetricDescriptorMetadata, decorator: Google::Apis::ServiceuserV1::MetricDescriptorMetadata::Representation + property :metric_kind, as: 'metricKind' property :name, as: 'name' property :type, as: 'type' @@ -764,6 +772,15 @@ module Google 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