UNPKG

openapi-directory

Version:

Building & bundling https://github.com/APIs-guru/openapi-directory for easy use from JS

1 lines 104 kB
{"openapi":"3.0.0","info":{"contact":{"name":"Google","url":"https://google.com"},"description":"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.","title":"Service Usage","version":"v1","x-apiClientRegistration":{"url":"https://console.developers.google.com"},"x-logo":{"url":"https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"},"x-origin":[{"converter":{"url":"https://github.com/lucybot/api-spec-converter","version":"2.7.18"},"format":"google","url":"https://serviceusage.googleapis.com/$discovery/rest?version=v1","version":"v1"}],"x-preferred":true,"x-providerName":"googleapis.com","x-serviceName":"serviceusage"},"externalDocs":{"url":"https://cloud.google.com/service-usage/"},"tags":[{"name":"operations"},{"name":"services"}],"paths":{"/v1/operations":{"get":{"description":"Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.","operationId":"serviceusage.operations.list","parameters":[{"description":"The standard list filter.","in":"query","name":"filter","schema":{"type":"string"}},{"description":"The name of the operation's parent resource.","in":"query","name":"name","schema":{"type":"string"}},{"description":"The standard list page size.","in":"query","name":"pageSize","schema":{"type":"integer"}},{"description":"The standard list page token.","in":"query","name":"pageToken","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ListOperationsResponse"}}}}},"security":[{"Oauth2":["https://www.googleapis.com/auth/cloud-platform"]},{"Oauth2":["https://www.googleapis.com/auth/service.management"]}],"tags":["operations"]},"parameters":[{"$ref":"#/components/parameters/_.xgafv"},{"$ref":"#/components/parameters/access_token"},{"$ref":"#/components/parameters/alt"},{"$ref":"#/components/parameters/callback"},{"$ref":"#/components/parameters/fields"},{"$ref":"#/components/parameters/key"},{"$ref":"#/components/parameters/oauth_token"},{"$ref":"#/components/parameters/prettyPrint"},{"$ref":"#/components/parameters/quotaUser"},{"$ref":"#/components/parameters/uploadType"},{"$ref":"#/components/parameters/upload_protocol"}]},"/v1/{name}":{"delete":{"description":"Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.","operationId":"serviceusage.operations.delete","parameters":[{"description":"The name of the operation resource to be deleted.","in":"path","name":"name","required":true,"x-reservedExpansion":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Empty"}}}}},"security":[{"Oauth2":["https://www.googleapis.com/auth/cloud-platform"]},{"Oauth2":["https://www.googleapis.com/auth/service.management"]}],"tags":["operations"]},"get":{"description":"Returns the service configuration and enabled state for a given service.","operationId":"serviceusage.services.get","parameters":[{"description":"Name of the consumer and service to get the `ConsumerState` for.\n\nAn example name would be:\n`projects/123/services/serviceusage.googleapis.com`\nwhere `123` is the project number (not project ID).","in":"path","name":"name","required":true,"x-reservedExpansion":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"*/*":{"schema":{"$ref":"#/components/schemas/GoogleApiServiceusageV1Service"}}}}},"security":[{"Oauth2":["https://www.googleapis.com/auth/cloud-platform"]},{"Oauth2":["https://www.googleapis.com/auth/cloud-platform.read-only"]}],"tags":["services"]},"parameters":[{"$ref":"#/components/parameters/_.xgafv"},{"$ref":"#/components/parameters/access_token"},{"$ref":"#/components/parameters/alt"},{"$ref":"#/components/parameters/callback"},{"$ref":"#/components/parameters/fields"},{"$ref":"#/components/parameters/key"},{"$ref":"#/components/parameters/oauth_token"},{"$ref":"#/components/parameters/prettyPrint"},{"$ref":"#/components/parameters/quotaUser"},{"$ref":"#/components/parameters/uploadType"},{"$ref":"#/components/parameters/upload_protocol"}]},"/v1/{name}:cancel":{"parameters":[{"$ref":"#/components/parameters/_.xgafv"},{"$ref":"#/components/parameters/access_token"},{"$ref":"#/components/parameters/alt"},{"$ref":"#/components/parameters/callback"},{"$ref":"#/components/parameters/fields"},{"$ref":"#/components/parameters/key"},{"$ref":"#/components/parameters/oauth_token"},{"$ref":"#/components/parameters/prettyPrint"},{"$ref":"#/components/parameters/quotaUser"},{"$ref":"#/components/parameters/uploadType"},{"$ref":"#/components/parameters/upload_protocol"}],"post":{"description":"Starts asynchronous cancellation on a long-running operation. The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`.","operationId":"serviceusage.operations.cancel","parameters":[{"description":"The name of the operation resource to be cancelled.","in":"path","name":"name","required":true,"x-reservedExpansion":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelOperationRequest"}}}},"responses":{"200":{"description":"Successful response","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Empty"}}}}},"security":[{"Oauth2":["https://www.googleapis.com/auth/cloud-platform"]},{"Oauth2":["https://www.googleapis.com/auth/service.management"]}],"tags":["operations"]}},"/v1/{name}:disable":{"parameters":[{"$ref":"#/components/parameters/_.xgafv"},{"$ref":"#/components/parameters/access_token"},{"$ref":"#/components/parameters/alt"},{"$ref":"#/components/parameters/callback"},{"$ref":"#/components/parameters/fields"},{"$ref":"#/components/parameters/key"},{"$ref":"#/components/parameters/oauth_token"},{"$ref":"#/components/parameters/prettyPrint"},{"$ref":"#/components/parameters/quotaUser"},{"$ref":"#/components/parameters/uploadType"},{"$ref":"#/components/parameters/upload_protocol"}],"post":{"description":"Disable a service so that it can no longer be used with a project.\nThis prevents unintended usage that may cause unexpected billing\ncharges or security leaks.\n\nIt is not valid to call the disable method on a service that is not\ncurrently enabled. Callers will receive a `FAILED_PRECONDITION` status if\nthe target service is not currently enabled.","operationId":"serviceusage.services.disable","parameters":[{"description":"Name of the consumer and service to disable the service on.\n\nThe enable and disable methods currently only support projects.\n\nAn example name would be:\n`projects/123/services/serviceusage.googleapis.com`\nwhere `123` is the project number (not project ID).","in":"path","name":"name","required":true,"x-reservedExpansion":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisableServiceRequest"}}}},"responses":{"200":{"description":"Successful response","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Operation"}}}}},"security":[{"Oauth2":["https://www.googleapis.com/auth/cloud-platform"]},{"Oauth2":["https://www.googleapis.com/auth/service.management"]}],"tags":["services"]}},"/v1/{name}:enable":{"parameters":[{"$ref":"#/components/parameters/_.xgafv"},{"$ref":"#/components/parameters/access_token"},{"$ref":"#/components/parameters/alt"},{"$ref":"#/components/parameters/callback"},{"$ref":"#/components/parameters/fields"},{"$ref":"#/components/parameters/key"},{"$ref":"#/components/parameters/oauth_token"},{"$ref":"#/components/parameters/prettyPrint"},{"$ref":"#/components/parameters/quotaUser"},{"$ref":"#/components/parameters/uploadType"},{"$ref":"#/components/parameters/upload_protocol"}],"post":{"description":"Enable a service so that it can be used with a project.","operationId":"serviceusage.services.enable","parameters":[{"description":"Name of the consumer and service to enable the service on.\n\nThe `EnableService` and `DisableService` methods currently only support\nprojects.\n\nEnabling a service requires that the service is public or is shared with\nthe user enabling the service.\n\nAn example name would be:\n`projects/123/services/serviceusage.googleapis.com`\nwhere `123` is the project number (not project ID).","in":"path","name":"name","required":true,"x-reservedExpansion":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnableServiceRequest"}}}},"responses":{"200":{"description":"Successful response","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Operation"}}}}},"security":[{"Oauth2":["https://www.googleapis.com/auth/cloud-platform"]},{"Oauth2":["https://www.googleapis.com/auth/service.management"]}],"tags":["services"]}},"/v1/{parent}/services":{"get":{"description":"List all services available to the specified project, and the current\nstate of those services with respect to the project. The list includes\nall public services, all services for which the calling user has the\n`servicemanagement.services.bind` permission, and all services that have\nalready been enabled on the project. The list can be filtered to\nonly include services in a specific state, for example to only include\nservices enabled on the project.","operationId":"serviceusage.services.list","parameters":[{"description":"Only list services that conform to the given filter.\nThe allowed filter strings are `state:ENABLED` and `state:DISABLED`.","in":"query","name":"filter","schema":{"type":"string"}},{"description":"Requested size of the next page of data.\nRequested page size cannot exceed 200.\n If not set, the default page size is 50.","in":"query","name":"pageSize","schema":{"type":"integer"}},{"description":"Token identifying which result to start with, which is returned by a\nprevious list call.","in":"query","name":"pageToken","schema":{"type":"string"}},{"description":"Parent to search for services on.\n\nAn example name would be:\n`projects/123`\nwhere `123` is the project number (not project ID).","in":"path","name":"parent","required":true,"x-reservedExpansion":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ListServicesResponse"}}}}},"security":[{"Oauth2":["https://www.googleapis.com/auth/cloud-platform"]},{"Oauth2":["https://www.googleapis.com/auth/cloud-platform.read-only"]}],"tags":["services"]},"parameters":[{"$ref":"#/components/parameters/_.xgafv"},{"$ref":"#/components/parameters/access_token"},{"$ref":"#/components/parameters/alt"},{"$ref":"#/components/parameters/callback"},{"$ref":"#/components/parameters/fields"},{"$ref":"#/components/parameters/key"},{"$ref":"#/components/parameters/oauth_token"},{"$ref":"#/components/parameters/prettyPrint"},{"$ref":"#/components/parameters/quotaUser"},{"$ref":"#/components/parameters/uploadType"},{"$ref":"#/components/parameters/upload_protocol"}]},"/v1/{parent}/services:batchEnable":{"parameters":[{"$ref":"#/components/parameters/_.xgafv"},{"$ref":"#/components/parameters/access_token"},{"$ref":"#/components/parameters/alt"},{"$ref":"#/components/parameters/callback"},{"$ref":"#/components/parameters/fields"},{"$ref":"#/components/parameters/key"},{"$ref":"#/components/parameters/oauth_token"},{"$ref":"#/components/parameters/prettyPrint"},{"$ref":"#/components/parameters/quotaUser"},{"$ref":"#/components/parameters/uploadType"},{"$ref":"#/components/parameters/upload_protocol"}],"post":{"description":"Enable multiple services on a project. The operation is atomic: if enabling\nany service fails, then the entire batch fails, and no state changes occur.","operationId":"serviceusage.services.batchEnable","parameters":[{"description":"Parent to enable services on.\n\nAn example name would be:\n`projects/123`\nwhere `123` is the project number (not project ID).\n\nThe `BatchEnableServices` method currently only supports projects.","in":"path","name":"parent","required":true,"x-reservedExpansion":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchEnableServicesRequest"}}}},"responses":{"200":{"description":"Successful response","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Operation"}}}}},"security":[{"Oauth2":["https://www.googleapis.com/auth/cloud-platform"]},{"Oauth2":["https://www.googleapis.com/auth/service.management"]}],"tags":["services"]}}},"servers":[{"url":"https://serviceusage.googleapis.com/"}],"components":{"parameters":{"access_token":{"description":"OAuth access token.","in":"query","name":"access_token","schema":{"type":"string"}},"alt":{"description":"Data format for response.","in":"query","name":"alt","schema":{"type":"string","enum":["json","media","proto"],"default":"json"}},"callback":{"description":"JSONP","in":"query","name":"callback","schema":{"type":"string"}},"fields":{"description":"Selector specifying which fields to include in a partial response.","in":"query","name":"fields","schema":{"type":"string"}},"key":{"description":"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.","in":"query","name":"key","schema":{"type":"string"}},"oauth_token":{"description":"OAuth 2.0 token for the current user.","in":"query","name":"oauth_token","schema":{"type":"string"}},"prettyPrint":{"description":"Returns response with indentations and line breaks.","in":"query","name":"prettyPrint","schema":{"type":"boolean","default":true}},"quotaUser":{"description":"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.","in":"query","name":"quotaUser","schema":{"type":"string"}},"uploadType":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","in":"query","name":"uploadType","schema":{"type":"string"}},"upload_protocol":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","in":"query","name":"upload_protocol","schema":{"type":"string"}},"_.xgafv":{"description":"V1 error format.","in":"query","name":"$.xgafv","schema":{"type":"string","enum":["1","2"]}}},"securitySchemes":{"Oauth2":{"description":"Oauth 2.0 authentication","type":"oauth2","flows":{"implicit":{"authorizationUrl":"https://accounts.google.com/o/oauth2/auth","scopes":{"https://www.googleapis.com/auth/cloud-platform":"View and manage your data across Google Cloud Platform services","https://www.googleapis.com/auth/cloud-platform.read-only":"View your data across Google Cloud Platform services","https://www.googleapis.com/auth/service.management":"Manage your Google API service configuration"}}}}},"schemas":{"Api":{"description":"Api is a light-weight descriptor for an API Interface.\n\nInterfaces are also described as \"protocol buffer services\" in some contexts,\nsuch as by the \"service\" keyword in a .proto file, but they are different\nfrom API Services, which represent a concrete implementation of an interface\nas opposed to simply a description of methods and bindings. They are also\nsometimes simply referred to as \"APIs\" in other contexts, such as the name of\nthis message itself. See https://cloud.google.com/apis/design/glossary for\ndetailed terminology.","properties":{"methods":{"description":"The methods of this interface, in unspecified order.","items":{"$ref":"#/components/schemas/Method"},"type":"array"},"mixins":{"description":"Included interfaces. See Mixin.","items":{"$ref":"#/components/schemas/Mixin"},"type":"array"},"name":{"description":"The fully qualified name of this interface, including package name\nfollowed by the interface's simple name.","type":"string"},"options":{"description":"Any metadata attached to the interface.","items":{"$ref":"#/components/schemas/Option"},"type":"array"},"sourceContext":{"$ref":"#/components/schemas/SourceContext"},"syntax":{"description":"The source syntax of the service.","enum":["SYNTAX_PROTO2","SYNTAX_PROTO3"],"type":"string"},"version":{"description":"A version string for this interface. If specified, must have the form\n`major-version.minor-version`, as in `1.10`. If the minor version is\nomitted, it defaults to zero. If the entire version field is empty, the\nmajor version is derived from the package name, as outlined below. If the\nfield is not empty, the version in the package name will be verified to be\nconsistent with what is provided here.\n\nThe versioning schema uses [semantic\nversioning](http://semver.org) where the major version number\nindicates a breaking change and the minor version an additive,\nnon-breaking change. Both version numbers are signals to users\nwhat to expect from different versions, and should be carefully\nchosen based on the product plan.\n\nThe major version is also reflected in the package name of the\ninterface, which must end in `v<major-version>`, as in\n`google.feature.v1`. For major versions 0 and 1, the suffix can\nbe omitted. Zero major versions must only be used for\nexperimental, non-GA interfaces.\n","type":"string"}},"type":"object"},"AuthProvider":{"description":"Configuration for an anthentication provider, including support for\n[JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).","properties":{"audiences":{"description":"The list of JWT\n[audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).\nthat are allowed to access. A JWT containing any of these audiences will\nbe accepted. When this setting is absent, only JWTs with audience\n\"https://Service_name/API_name\"\nwill be accepted. For example, if no audiences are in the setting,\nLibraryService API will only accept JWTs with the following audience\n\"https://library-example.googleapis.com/google.example.library.v1.LibraryService\".\n\nExample:\n\n audiences: bookstore_android.apps.googleusercontent.com,\n bookstore_web.apps.googleusercontent.com","type":"string"},"authorizationUrl":{"description":"Redirect URL if JWT token is required but not present or is expired.\nImplement authorizationUrl of securityDefinitions in OpenAPI spec.","type":"string"},"id":{"description":"The unique identifier of the auth provider. It will be referred to by\n`AuthRequirement.provider_id`.\n\nExample: \"bookstore_auth\".","type":"string"},"issuer":{"description":"Identifies the principal that issued the JWT. See\nhttps://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1\nUsually a URL or an email address.\n\nExample: https://securetoken.google.com\nExample: 1234567-compute@developer.gserviceaccount.com","type":"string"},"jwksUri":{"description":"URL of the provider's public key set to validate signature of the JWT. See\n[OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).\nOptional if the key set document:\n - can be retrieved from\n [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html\n of the issuer.\n - can be inferred from the email domain of the issuer (e.g. a Google service account).\n\nExample: https://www.googleapis.com/oauth2/v1/certs","type":"string"}},"type":"object"},"AuthRequirement":{"description":"User-defined authentication requirements, including support for\n[JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).","properties":{"audiences":{"description":"NOTE: This will be deprecated soon, once AuthProvider.audiences is\nimplemented and accepted in all the runtime components.\n\nThe list of JWT\n[audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).\nthat are allowed to access. A JWT containing any of these audiences will\nbe accepted. When this setting is absent, only JWTs with audience\n\"https://Service_name/API_name\"\nwill be accepted. For example, if no audiences are in the setting,\nLibraryService API will only accept JWTs with the following audience\n\"https://library-example.googleapis.com/google.example.library.v1.LibraryService\".\n\nExample:\n\n audiences: bookstore_android.apps.googleusercontent.com,\n bookstore_web.apps.googleusercontent.com","type":"string"},"providerId":{"description":"id from authentication provider.\n\nExample:\n\n provider_id: bookstore_auth","type":"string"}},"type":"object"},"Authentication":{"description":"`Authentication` defines the authentication configuration for an API.\n\nExample for an API targeted for external use:\n\n name: calendar.googleapis.com\n authentication:\n providers:\n - id: google_calendar_auth\n jwks_uri: https://www.googleapis.com/oauth2/v1/certs\n issuer: https://securetoken.google.com\n rules:\n - selector: \"*\"\n requirements:\n provider_id: google_calendar_auth","properties":{"providers":{"description":"Defines a set of authentication providers that a service supports.","items":{"$ref":"#/components/schemas/AuthProvider"},"type":"array"},"rules":{"description":"A list of authentication rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.","items":{"$ref":"#/components/schemas/AuthenticationRule"},"type":"array"}},"type":"object"},"AuthenticationRule":{"description":"Authentication rules for the service.\n\nBy default, if a method has any authentication requirements, every request\nmust include a valid credential matching one of the requirements.\nIt's an error to include more than one kind of credential in a single\nrequest.\n\nIf a method doesn't have any auth requirements, request credentials will be\nignored.","properties":{"allowWithoutCredential":{"description":"If true, the service accepts API keys without any other credential.","type":"boolean"},"oauth":{"$ref":"#/components/schemas/OAuthRequirements"},"requirements":{"description":"Requirements for additional authentication providers.","items":{"$ref":"#/components/schemas/AuthRequirement"},"type":"array"},"selector":{"description":"Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.","type":"string"}},"type":"object"},"AuthorizationConfig":{"description":"Configuration of authorization.\n\nThis section determines the authorization provider, if unspecified, then no\nauthorization check will be done.\n\nExample:\n\n experimental:\n authorization:\n provider: firebaserules.googleapis.com","properties":{"provider":{"description":"The name of the authorization provider, such as\nfirebaserules.googleapis.com.","type":"string"}},"type":"object"},"Backend":{"description":"`Backend` defines the backend configuration for a service.","properties":{"rules":{"description":"A list of API backend rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.","items":{"$ref":"#/components/schemas/BackendRule"},"type":"array"}},"type":"object"},"BackendRule":{"description":"A backend rule provides configuration for an individual API element.","properties":{"address":{"description":"The address of the API backend.","type":"string"},"deadline":{"description":"The number of seconds to wait for a response from a request. The default\ndeadline for gRPC is infinite (no deadline) and HTTP requests is 5 seconds.","format":"double","type":"number"},"jwtAudience":{"description":"The JWT audience is used when generating a JWT id token for the backend.","type":"string"},"minDeadline":{"description":"Minimum deadline in seconds needed for this method. Calls having deadline\nvalue lower than this will be rejected.","format":"double","type":"number"},"operationDeadline":{"description":"The number of seconds to wait for the completion of a long running\noperation. The default is no deadline.","format":"double","type":"number"},"pathTranslation":{"enum":["PATH_TRANSLATION_UNSPECIFIED","CONSTANT_ADDRESS","APPEND_PATH_TO_ADDRESS"],"type":"string"},"selector":{"description":"Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.","type":"string"}},"type":"object"},"BatchEnableServicesRequest":{"description":"Request message for the `BatchEnableServices` method.","properties":{"serviceIds":{"description":"The identifiers of the services to enable on the project.\n\nA valid identifier would be:\nserviceusage.googleapis.com\n\nEnabling services requires that each service is public or is shared with\nthe user enabling the service.\n\nTwo or more services must be specified. To enable a single service,\nuse the `EnableService` method instead.\n\nA single request can enable a maximum of 20 services at a time. If more\nthan 20 services are specified, the request will fail, and no state changes\nwill occur.","items":{"type":"string"},"type":"array"}},"type":"object"},"BatchEnableServicesResponse":{"description":"Response message for the `BatchEnableServices` method.\nThis response message is assigned to the `response` field of the returned\nOperation when that operation is done.","properties":{"failures":{"description":"If allow_partial_success is true, and one or more services could not be\nenabled, this field contains the details about each failure.","items":{"$ref":"#/components/schemas/EnableFailure"},"type":"array"},"services":{"description":"The new state of the services after enabling.","items":{"$ref":"#/components/schemas/GoogleApiServiceusageV1Service"},"type":"array"}},"type":"object"},"Billing":{"description":"Billing related configuration of the service.\n\nThe following example shows how to configure monitored resources and metrics\nfor billing:\n\n monitored_resources:\n - type: library.googleapis.com/branch\n labels:\n - key: /city\n description: The city where the library branch is located in.\n - key: /name\n description: The name of the branch.\n metrics:\n - name: library.googleapis.com/book/borrowed_count\n metric_kind: DELTA\n value_type: INT64\n billing:\n consumer_destinations:\n - monitored_resource: library.googleapis.com/branch\n metrics:\n - library.googleapis.com/book/borrowed_count","properties":{"consumerDestinations":{"description":"Billing configurations for sending metrics to the consumer project.\nThere can be multiple consumer destinations per service, each one must have\na different monitored resource type. A metric can be used in at most\none consumer destination.","items":{"$ref":"#/components/schemas/BillingDestination"},"type":"array"}},"type":"object"},"BillingDestination":{"description":"Configuration of a specific billing destination (Currently only support\nbill against consumer project).","properties":{"metrics":{"description":"Names of the metrics to report to this billing destination.\nEach name must be defined in Service.metrics section.","items":{"type":"string"},"type":"array"},"monitoredResource":{"description":"The monitored resource type. The type must be defined in\nService.monitored_resources section.","type":"string"}},"type":"object"},"CancelOperationRequest":{"description":"The request message for Operations.CancelOperation.","properties":{},"type":"object"},"Context":{"description":"`Context` defines which contexts an API requests.\n\nExample:\n\n context:\n rules:\n - selector: \"*\"\n requested:\n - google.rpc.context.ProjectContext\n - google.rpc.context.OriginContext\n\nThe above specifies that all methods in the API request\n`google.rpc.context.ProjectContext` and\n`google.rpc.context.OriginContext`.\n\nAvailable context types are defined in package\n`google.rpc.context`.\n\nThis also provides mechanism to whitelist any protobuf message extension that\ncan be sent in grpc metadata using “x-goog-ext-<extension_id>-bin” and\n“x-goog-ext-<extension_id>-jspb” format. For example, list any service\nspecific protobuf types that can appear in grpc metadata as follows in your\nyaml file:\n\nExample:\n\n context:\n rules:\n - selector: \"google.example.library.v1.LibraryService.CreateBook\"\n allowed_request_extensions:\n - google.foo.v1.NewExtension\n allowed_response_extensions:\n - google.foo.v1.NewExtension\n\nYou can also specify extension ID instead of fully qualified extension name\nhere.","properties":{"rules":{"description":"A list of RPC context rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.","items":{"$ref":"#/components/schemas/ContextRule"},"type":"array"}},"type":"object"},"ContextRule":{"description":"A context rule provides information about the context for an individual API\nelement.","properties":{"allowedRequestExtensions":{"description":"A list of full type names or extension IDs of extensions allowed in grpc\nside channel from client to backend.","items":{"type":"string"},"type":"array"},"allowedResponseExtensions":{"description":"A list of full type names or extension IDs of extensions allowed in grpc\nside channel from backend to client.","items":{"type":"string"},"type":"array"},"provided":{"description":"A list of full type names of provided contexts.","items":{"type":"string"},"type":"array"},"requested":{"description":"A list of full type names of requested contexts.","items":{"type":"string"},"type":"array"},"selector":{"description":"Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.","type":"string"}},"type":"object"},"Control":{"description":"Selects and configures the service controller used by the service. The\nservice controller handles features like abuse, quota, billing, logging,\nmonitoring, etc.","properties":{"environment":{"description":"The service control environment to use. If empty, no control plane\nfeature (like quota and billing) will be enabled.","type":"string"}},"type":"object"},"CustomError":{"description":"Customize service error responses. For example, list any service\nspecific protobuf types that can appear in error detail lists of\nerror responses.\n\nExample:\n\n custom_error:\n types:\n - google.foo.v1.CustomError\n - google.foo.v1.AnotherError","properties":{"rules":{"description":"The list of custom error rules that apply to individual API messages.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.","items":{"$ref":"#/components/schemas/CustomErrorRule"},"type":"array"},"types":{"description":"The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.","items":{"type":"string"},"type":"array"}},"type":"object"},"CustomErrorRule":{"description":"A custom error rule.","properties":{"isErrorType":{"description":"Mark this message as possible payload in error response. Otherwise,\nobjects of this type will be filtered when they appear in error payload.","type":"boolean"},"selector":{"description":"Selects messages to which this rule applies.\n\nRefer to selector for syntax details.","type":"string"}},"type":"object"},"CustomHttpPattern":{"description":"A custom pattern is used for defining custom HTTP verb.","properties":{"kind":{"description":"The name of this custom HTTP verb.","type":"string"},"path":{"description":"The path matched by this custom verb.","type":"string"}},"type":"object"},"DisableServiceRequest":{"description":"Request message for the `DisableService` method.","properties":{"disableDependentServices":{"description":"Indicates if services that are enabled and which depend on this service\nshould also be disabled. If not set, an error will be generated if any\nenabled services depend on the service to be disabled. When set, the\nservice, and any enabled services that depend on it, will be disabled\ntogether.","type":"boolean"}},"type":"object"},"DisableServiceResponse":{"description":"Response message for the `DisableService` method.\nThis response message is assigned to the `response` field of the returned\nOperation when that operation is done.","properties":{"service":{"$ref":"#/components/schemas/GoogleApiServiceusageV1Service"}},"type":"object"},"Documentation":{"description":"`Documentation` provides the information for describing a service.\n\nExample:\n<pre><code>documentation:\n summary: >\n The Google Calendar API gives access\n to most calendar features.\n pages:\n - name: Overview\n content: &#40;== include google/foo/overview.md ==&#41;\n - name: Tutorial\n content: &#40;== include google/foo/tutorial.md ==&#41;\n subpages;\n - name: Java\n content: &#40;== include google/foo/tutorial_java.md ==&#41;\n rules:\n - selector: google.calendar.Calendar.Get\n description: >\n ...\n - selector: google.calendar.Calendar.Put\n description: >\n ...\n</code></pre>\nDocumentation is provided in markdown syntax. In addition to\nstandard markdown features, definition lists, tables and fenced\ncode blocks are supported. Section headers can be provided and are\ninterpreted relative to the section nesting of the context where\na documentation fragment is embedded.\n\nDocumentation from the IDL is merged with documentation defined\nvia the config at normalization time, where documentation provided\nby config rules overrides IDL provided.\n\nA number of constructs specific to the API platform are supported\nin documentation text.\n\nIn order to reference a proto element, the following\nnotation can be used:\n<pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>\nTo override the display text used for the link, this can be used:\n<pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>\nText can be excluded from doc using the following notation:\n<pre><code>&#40;-- internal comment --&#41;</code></pre>\n\nA few directives are available in documentation. Note that\ndirectives must appear on a single line to be properly\nidentified. The `include` directive includes a markdown file from\nan external source:\n<pre><code>&#40;== include path/to/file ==&#41;</code></pre>\nThe `resource_for` directive marks a message to be the resource of\na collection in REST view. If it is not specified, tools attempt\nto infer the resource from the operations in a collection:\n<pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>\nThe directive `suppress_warning` does not directly affect documentation\nand is documented together with service config validation.","properties":{"documentationRootUrl":{"description":"The URL to the root of documentation.","type":"string"},"overview":{"description":"Declares a single overview page. For example:\n<pre><code>documentation:\n summary: ...\n overview: &#40;== include overview.md ==&#41;\n</code></pre>\nThis is a shortcut for the following declaration (using pages style):\n<pre><code>documentation:\n summary: ...\n pages:\n - name: Overview\n content: &#40;== include overview.md ==&#41;\n</code></pre>\nNote: you cannot specify both `overview` field and `pages` field.","type":"string"},"pages":{"description":"The top level pages for the documentation set.","items":{"$ref":"#/components/schemas/Page"},"type":"array"},"rules":{"description":"A list of documentation rules that apply to individual API elements.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.","items":{"$ref":"#/components/schemas/DocumentationRule"},"type":"array"},"summary":{"description":"A short summary of what the service does. Can only be provided by\nplain text.","type":"string"}},"type":"object"},"DocumentationRule":{"description":"A documentation rule provides information about individual API elements.","properties":{"deprecationDescription":{"description":"Deprecation description of the selected element(s). It can be provided if an\nelement is marked as `deprecated`.","type":"string"},"description":{"description":"Description of the selected API(s).","type":"string"},"selector":{"description":"The selector is a comma-separated list of patterns. Each pattern is a\nqualified name of the element which may end in \"*\", indicating a wildcard.\nWildcards are only allowed at the end and for a whole component of the\nqualified name, i.e. \"foo.*\" is ok, but not \"foo.b*\" or \"foo.*.bar\". To\nspecify a default for all applicable elements, the whole pattern \"*\"\nis used.","type":"string"}},"type":"object"},"Empty":{"description":"A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.","properties":{},"type":"object"},"EnableFailure":{"description":"Provides error messages for the failing services.","properties":{"errorMessage":{"description":"An error message describing why the service could not be enabled.","type":"string"},"serviceId":{"description":"The service id of a service that could not be enabled.","type":"string"}},"type":"object"},"EnableServiceRequest":{"description":"Request message for the `EnableService` method.","properties":{},"type":"object"},"EnableServiceResponse":{"description":"Response message for the `EnableService` method.\nThis response message is assigned to the `response` field of the returned\nOperation when that operation is done.","properties":{"service":{"$ref":"#/components/schemas/GoogleApiServiceusageV1Service"}},"type":"object"},"Endpoint":{"description":"`Endpoint` describes a network endpoint that serves a set of APIs.\nA service may expose any number of endpoints, and all endpoints share the\nsame service configuration, such as quota configuration and monitoring\nconfiguration.\n\nExample service configuration:\n\n name: library-example.googleapis.com\n endpoints:\n # Below entry makes 'google.example.library.v1.Library'\n # API be served from endpoint address library-example.googleapis.com.\n # It also allows HTTP OPTIONS calls to be passed to the backend, for\n # it to decide whether the subsequent cross-origin request is\n # allowed to proceed.\n - name: library-example.googleapis.com\n allow_cors: true","properties":{"aliases":{"description":"DEPRECATED: This field is no longer supported. Instead of using aliases,\nplease specify multiple google.api.Endpoint for each of the intended\naliases.\n\nAdditional names that this endpoint will be hosted on.","items":{"type":"string"},"type":"array"},"allowCors":{"description":"Allowing\n[CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka\ncross-domain traffic, would allow the backends served from this endpoint to\nreceive and respond to HTTP OPTIONS requests. The response will be used by\nthe browser to determine whether the subsequent cross-origin request is\nallowed to proceed.","type":"boolean"},"features":{"description":"The list of features enabled on this endpoint.","items":{"type":"string"},"type":"array"},"name":{"description":"The canonical name of this endpoint.","type":"string"},"target":{"description":"The specification of an Internet routable address of API frontend that will\nhandle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary).\nIt should be either a valid IPv4 address or a fully-qualified domain name.\nFor example, \"8.8.8.8\" or \"myservice.appspot.com\".","type":"string"}},"type":"object"},"Enum":{"description":"Enum type definition.","properties":{"enumvalue":{"description":"Enum value definitions.","items":{"$ref":"#/components/schemas/EnumValue"},"type":"array"},"name":{"description":"Enum type name.","type":"string"},"options":{"description":"Protocol buffer options.","items":{"$ref":"#/components/schemas/Option"},"type":"array"},"sourceContext":{"$ref":"#/components/schemas/SourceContext"},"syntax":{"description":"The source syntax.","enum":["SYNTAX_PROTO2","SYNTAX_PROTO3"],"type":"string"}},"type":"object"},"EnumValue":{"description":"Enum value definition.","properties":{"name":{"description":"Enum value name.","type":"string"},"number":{"description":"Enum value number.","format":"int32","type":"integer"},"options":{"description":"Protocol buffer options.","items":{"$ref":"#/components/schemas/Option"},"type":"array"}},"type":"object"},"Experimental":{"description":"Experimental service configuration. These configuration options can\nonly be used by whitelisted users.","properties":{"authorization":{"$ref":"#/components/schemas/AuthorizationConfig"}},"type":"object"},"Field":{"description":"A single field of a message type.","properties":{"cardinality":{"description":"The field cardinality.","enum":["CARDINALITY_UNKNOWN","CARDINALITY_OPTIONAL","CARDINALITY_REQUIRED","CARDINALITY_REPEATED"],"type":"string"},"defaultValue":{"description":"The string value of the default value of this field. Proto2 syntax only.","type":"string"},"jsonName":{"description":"The field JSON name.","type":"string"},"kind":{"description":"The field type.","enum":["TYPE_UNKNOWN","TYPE_DOUBLE","TYPE_FLOAT","TYPE_INT64","TYPE_UINT64","TYPE_INT32","TYPE_FIXED64","TYPE_FIXED32","TYPE_BOOL","TYPE_STRING","TYPE_GROUP","TYPE_MESSAGE","TYPE_BYTES","TYPE_UINT32","TYPE_ENUM","TYPE_SFIXED32","TYPE_SFIXED64","TYPE_SINT32","TYPE_SINT64"],"type":"string"},"name":{"description":"The field name.","type":"string"},"number":{"description":"The field number.","format":"int32","type":"integer"},"oneofIndex":{"description":"The index of the field type in `Type.oneofs`, for message or enumeration\ntypes. The first type has index 1; zero means the type is not in the list.","format":"int32","type":"integer"},"options":{"description":"The protocol buffer options.","items":{"$ref":"#/components/schemas/Option"},"type":"array"},"packed":{"description":"Whether to use alternative packed wire representation.","type":"boolean"},"typeUrl":{"description":"The field type URL, without the scheme, for message or enumeration\ntypes. Example: `\"type.googleapis.com/google.protobuf.Timestamp\"`.","type":"string"}},"type":"object"},"GoogleApiService":{"description":"`Service` is the root object of Google service configuration schema. It\ndescribes basic information about a service, such as the name and the\ntitle, and delegates other aspects to sub-sections. Each sub-section is\neither a proto message or a repeated proto message that configures a\nspecific aspect, such as auth. See each proto message definition for details.\n\nExample:\n\n type: google.api.Service\n config_version: 3\n name: calendar.googleapis.com\n title: Google Calendar API\n apis:\n - name: google.calendar.v3.Calendar\n authentication:\n providers:\n - id: google_calendar_auth\n jwks_uri: https://www.googleapis.com/oauth2/v1/certs\n issuer: https://securetoken.google.com\n rules:\n - selector: \"*\"\n requirements:\n provider_id: google_calendar_auth","properties":{"apis":{"description":"A list of API interfaces exported by this service. Only the `name` field\nof the google.protobuf.Api needs to be provided by the configuration\nauthor, as the remaining fields will be derived from the IDL during the\nnormalization process. It is an error to specify an API interface here\nwhich cannot be resolved against the associated IDL files.","items":{"$ref":"#/components/schemas/Api"},"type":"array"},"authentication":{"$ref":"#/components/schemas/Authentication"},"backend":{"$ref":"#/components/schemas/Backend"},"billing":{"$ref":"#/components/schemas/Billing"},"configVersion":{"description":"The semantic version of the service configuration. The config version\naffects the interpretation of the service configuration. For example,\ncertain features are enabled by default for certain config versions.\nThe latest config version is `3`.","format":"uint32","type":"integer"},"context":{"$ref":"#/components/schemas/Context"},"control":{"$ref":"#/components/schemas/Control"},"customError":{"$ref":"#/components/schemas/CustomError"},"documentation":{"$ref":"#/components/schemas/Documentation"},"endpoints":{"description":"Configuration for network endpoints. If this is empty, then an endpoint\nwith the same name as the service is automatically generated to service all\ndefined APIs.","items":{"$ref":"#/components/schemas/Endpoint"},"type":"array"},"enums":{"description":"A list of all enum types included in this API service. Enums\nreferenced directly or indirectly by the `apis` are automatically\nincluded. Enums which are not referenced but shall be included\nshould be listed here by name. Example:\n\n enums:\n - name: google.someapi.v1.SomeEnum","items":{"$ref":"#/components/schemas/Enum"},"type":"array"},"experimental":{"$ref":"#/components/schemas/Experimental"},"http":{"$ref":"#/components/schemas/Http"},"id":{"description":"A unique ID for a specific instance of this message, typically assigned\nby the client for tracking purpose. If empty, the server may choose to\ngenerate one instead. Must be no longer than 60 characters.","type":"string"},"logging":{"$ref":"#/components/schemas/Logging"},"logs":{"description":"Defines the logs used by this service.","items":{"$ref":"#/components/schemas/LogDescriptor"},"type":"array"},"metrics":{"description":"Defines the metrics used by this service.","items":{"$ref":"#/components/schemas/MetricDescriptor"},"type":"array"},"monitoredResources":{"description":"Defines the monitored resources used by this service. This is required\nby the Service.monitoring and Service.logging configurations.","items":{"$ref":"#/components/schemas/MonitoredResourceDescriptor"},"type":"array"},"monitoring":{"$ref":"#/components/schemas/Monitoring"},"name":{"description":"The service name, which is a DNS-like logical identifier for the\nservice, such as `calendar.googleapis.com`. The service name\ntypically goes through DNS verification to make sure the owner\nof the service also owns the DNS name.","type":"string"},"producerProjectId":{"description":"The Google project that owns this service.","type":"string"},"quota":{"$ref":"#/components/schemas/Quota"},"sourceInfo":{"$ref":"#/components/schemas/SourceInfo"},"systemParameters":{"$ref":"#/components/schemas/SystemParameters"},"systemTypes":{"description":"A list of all proto message types included in this API service.\nIt serves similar purpose as [google.api.Service.types], except that\nthese types are not needed by user-defined APIs. Therefore, they will not\nshow up in the generated discovery doc. This field should only be used\nto define system APIs in ESF.","items":{"$ref":"#/components/schemas/Type"},"type":"array"},"title":{"description":"The product title for this service.","type":"string"},"types":{"description":"A list of all proto message types included in this API service.\nTypes referenced directly or indirectly by the `apis` are\nautomatically included. Messages which are not referenced but\nshall be included, such as types used by the `google.protobuf.Any` type,\nshould be listed here by name. Example:\n\n types:\n - name: google.protobuf.Int32","items":{"$ref":"#/components/schemas/Type"},"type":"array"},"usage":{"$ref":"#/components/schemas/Usage"}},"type":"object"},"GoogleApiServiceusageV1OperationMetadata":{"description":"The operation metadata returned for the batchend services operation.","properties":{"resourceNames":{"description":"The full name of the resources that this operation is directly\nassociated with.","items":{"type":"string"},"type":"array"}},"type":"object"},"GoogleApiServiceusageV1Service":{"description":"A service that is available for use by the consumer.","properties":{"config":{"$ref":"#/components/schemas/GoogleApiServiceusageV1ServiceConfig"},"name":{"description":"The resource name of the consumer and service.\n\nA valid name would be:\n- projects/123/services/serviceusage.googleapis.com","type":"string"},"parent":{"description":"The resource name of the consumer.\n\nA valid name would be:\n- projects/123","type":"string"},"state":{"description":"Whether or not the service has been enabled for use by the consumer.","enum":["STATE_UNSPECIFIED","DISABLED","ENABLED"],"type":"string"}},"type":"object"},"GoogleApiServiceusageV1ServiceConfig":{"description":"The configuration of the service.","properties":{"apis":{"description":"A list of API interfaces exported by this service. Contains only the names,\nversions, and method names of the interfaces.","items":{"$ref":"#/components/schemas/Api"},"type":"array"},"authentication":{"$ref":"#/components/sc