chore: regens API reference docs (#889)
diff --git a/docs/dyn/serviceusage_v1.services.html b/docs/dyn/serviceusage_v1.services.html
index 0623184..a4d5065 100644
--- a/docs/dyn/serviceusage_v1.services.html
+++ b/docs/dyn/serviceusage_v1.services.html
@@ -75,10 +75,13 @@
<h1><a href="serviceusage_v1.html">Service Usage API</a> . <a href="serviceusage_v1.services.html">services</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
- <code><a href="#batchEnable">batchEnable(parent, body, x__xgafv=None)</a></code></p>
+ <code><a href="#batchEnable">batchEnable(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Enable multiple services on a project. The operation is atomic: if enabling</p>
<p class="toc_element">
- <code><a href="#disable">disable(name, body, x__xgafv=None)</a></code></p>
+ <code><a href="#batchGet">batchGet(parent, names=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns the service configurations and enabled states for a given list of</p>
+<p class="toc_element">
+ <code><a href="#disable">disable(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Disable a service so that it can no longer be used with a project.</p>
<p class="toc_element">
<code><a href="#enable">enable(name, body=None, x__xgafv=None)</a></code></p>
@@ -87,16 +90,17 @@
<code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Returns the service configuration and enabled state for a given service.</p>
<p class="toc_element">
- <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None, filter=None)</a></code></p>
+ <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None, filter=None)</a></code></p>
<p class="firstline">List all services available to the specified project, and the current</p>
<p class="toc_element">
<code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<h3>Method Details</h3>
<div class="method">
- <code class="details" id="batchEnable">batchEnable(parent, body, x__xgafv=None)</code>
+ <code class="details" id="batchEnable">batchEnable(parent, body=None, x__xgafv=None)</code>
<pre>Enable multiple services on a project. The operation is atomic: if enabling
any service fails, then the entire batch fails, and no state changes occur.
+To enable a single service, use the `EnableService` method instead.
Args:
parent: string, Parent to enable services on.
@@ -105,7 +109,7 @@
`projects/123` where `123` is the project number.
The `BatchEnableServices` method currently only supports projects. (required)
- body: object, The request body. (required)
+ body: object, The request body.
The object takes the form of:
{ # Request message for the `BatchEnableServices` method.
@@ -117,9 +121,6 @@
# Enabling services requires that each service is public or is shared with
# the user enabling the service.
#
- # Two or more services must be specified. To enable a single service,
- # use the `EnableService` method instead.
- #
# A single request can enable a maximum of 20 services at a time. If more
# than 20 services are specified, the request will fail, and no state changes
# will occur.
@@ -137,12 +138,28 @@
{ # This resource represents a long-running operation that is the result of a
# network API call.
+ "response": { # 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`.
+ "a_key": "", # Properties of the object. Contains field @type with type URL.
+ },
"metadata": { # 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.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
+ "done": True or False, # 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.
+ "name": "A String", # 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 be a resource name ending with `operations/{unique_id}`.
"error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
# different programming environments, including REST APIs and RPC APIs. It is
# used by [gRPC](https://github.com/grpc). Each `Status` message contains
@@ -161,54 +178,26 @@
},
],
},
- "done": True or False, # 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.
- "response": { # 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`.
- "a_key": "", # Properties of the object. Contains field @type with type URL.
- },
- "name": "A String", # 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 be a resource name ending with `operations/{unique_id}`.
}</pre>
</div>
<div class="method">
- <code class="details" id="disable">disable(name, body, x__xgafv=None)</code>
- <pre>Disable a service so that it can no longer be used with a project.
-This prevents unintended usage that may cause unexpected billing
-charges or security leaks.
-
-It is not valid to call the disable method on a service that is not
-currently enabled. Callers will receive a `FAILED_PRECONDITION` status if
-the target service is not currently enabled.
+ <code class="details" id="batchGet">batchGet(parent, names=None, x__xgafv=None)</code>
+ <pre>Returns the service configurations and enabled states for a given list of
+services.
Args:
- name: string, Name of the consumer and service to disable the service on.
-
-The enable and disable methods currently only support projects.
+ parent: string, Parent to retrieve services from.
+If this is set, the parent of all of the services specified in `names` must
+match this field. An example name would be: `projects/123` where `123` is
+the project number. The `BatchGetServices` method currently only supports
+projects. (required)
+ names: string, Names of the services to retrieve.
An example name would be:
`projects/123/services/serviceusage.googleapis.com` where `123` is the
-project number. (required)
- body: object, The request body. (required)
- The object takes the form of:
-
-{ # Request message for the `DisableService` method.
- "disableDependentServices": True or False, # Indicates if services that are enabled and which depend on this service
- # should also be disabled. If not set, an error will be generated if any
- # enabled services depend on the service to be disabled. When set, the
- # service, and any enabled services that depend on it, will be disabled
- # together.
- }
-
+project number.
+A single request can get a maximum of 20 services at a time. (repeated)
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
@@ -217,840 +206,8 @@
Returns:
An object of the form:
- { # This resource represents a long-running operation that is the result of a
- # network API call.
- "metadata": { # 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.
- "a_key": "", # Properties of the object. Contains field @type with type URL.
- },
- "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
- # different programming environments, including REST APIs and RPC APIs. It is
- # used by [gRPC](https://github.com/grpc). Each `Status` message contains
- # three pieces of data: error code, error message, and error details.
- #
- # You can find out more about this error model and how to work with it in the
- # [API Design Guide](https://cloud.google.com/apis/design/errors).
- "message": "A String", # 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.
- "code": 42, # The status code, which should be an enum value of google.rpc.Code.
- "details": [ # A list of messages that carry the error details. There is a common set of
- # message types for APIs to use.
- {
- "a_key": "", # Properties of the object. Contains field @type with type URL.
- },
- ],
- },
- "done": True or False, # 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.
- "response": { # 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`.
- "a_key": "", # Properties of the object. Contains field @type with type URL.
- },
- "name": "A String", # 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 be a resource name ending with `operations/{unique_id}`.
- }</pre>
-</div>
-
-<div class="method">
- <code class="details" id="enable">enable(name, body=None, x__xgafv=None)</code>
- <pre>Enable a service so that it can be used with a project.
-
-Args:
- name: string, Name of the consumer and service to enable the service on.
-
-The `EnableService` and `DisableService` methods currently only support
-projects.
-
-Enabling a service requires that the service is public or is shared with
-the user enabling the service.
-
-An example name would be:
-`projects/123/services/serviceusage.googleapis.com` where `123` is the
-project number. (required)
- body: object, The request body.
- The object takes the form of:
-
-{ # Request message for the `EnableService` method.
- }
-
- x__xgafv: string, V1 error format.
- Allowed values
- 1 - v1 error format
- 2 - v2 error format
-
-Returns:
- An object of the form:
-
- { # This resource represents a long-running operation that is the result of a
- # network API call.
- "metadata": { # 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.
- "a_key": "", # Properties of the object. Contains field @type with type URL.
- },
- "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
- # different programming environments, including REST APIs and RPC APIs. It is
- # used by [gRPC](https://github.com/grpc). Each `Status` message contains
- # three pieces of data: error code, error message, and error details.
- #
- # You can find out more about this error model and how to work with it in the
- # [API Design Guide](https://cloud.google.com/apis/design/errors).
- "message": "A String", # 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.
- "code": 42, # The status code, which should be an enum value of google.rpc.Code.
- "details": [ # A list of messages that carry the error details. There is a common set of
- # message types for APIs to use.
- {
- "a_key": "", # Properties of the object. Contains field @type with type URL.
- },
- ],
- },
- "done": True or False, # 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.
- "response": { # 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`.
- "a_key": "", # Properties of the object. Contains field @type with type URL.
- },
- "name": "A String", # 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 be a resource name ending with `operations/{unique_id}`.
- }</pre>
-</div>
-
-<div class="method">
- <code class="details" id="get">get(name, x__xgafv=None)</code>
- <pre>Returns the service configuration and enabled state for a given service.
-
-Args:
- name: string, Name of the consumer and service to get the `ConsumerState` for.
-
-An example name would be:
-`projects/123/services/serviceusage.googleapis.com` where `123` is the
-project number. (required)
- x__xgafv: string, V1 error format.
- Allowed values
- 1 - v1 error format
- 2 - v2 error format
-
-Returns:
- An object of the form:
-
- { # A service that is available for use by the consumer.
- "state": "A String", # Whether or not the service has been enabled for use by the consumer.
- "config": { # The configuration of the service. # The service configuration of the available service.
- # Some fields may be filtered out of the configuration in responses to
- # the `ListServices` method. These fields are present only in responses to
- # the `GetService` method.
- "name": "A String", # The DNS address at which this service is available.
- #
- # An example DNS address would be:
- # `calendar.googleapis.com`.
- "title": "A String", # The product title for this service.
- "documentation": { # `Documentation` provides the information for describing a service. # Additional API documentation. Contains only the summary and the
- # documentation URL.
- #
- # Example:
- # <pre><code>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: >
- # ...
- # </code></pre>
- # 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:
- # <pre><code>[fully.qualified.proto.name][]</code></pre>
- # To override the display text used for the link, this can be used:
- # <pre><code>[display text][fully.qualified.proto.name]</code></pre>
- # Text can be excluded from doc using the following notation:
- # <pre><code>(-- internal comment --)</code></pre>
- #
- # 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:
- # <pre><code>(== include path/to/file ==)</code></pre>
- # 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:
- # <pre><code>(== resource_for v1.shelves.books ==)</code></pre>
- # The directive `suppress_warning` does not directly affect documentation
- # and is documented together with service config validation.
- "rules": [ # A list of documentation rules that apply to individual API elements.
- #
- # **NOTE:** All service configuration rules follow "last one wins" order.
- { # A documentation rule provides information about individual API elements.
- "description": "A String", # Description of the selected API(s).
- "deprecationDescription": "A String", # Deprecation description of the selected element(s). It can be provided if
- # an element is marked as `deprecated`.
- "selector": "A String", # 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". A
- # wildcard will match one or more components. To specify a default for all
- # applicable elements, the whole pattern "*" is used.
- },
- ],
- "documentationRootUrl": "A String", # The URL to the root of documentation.
- "summary": "A String", # A short summary of what the service does. Can only be provided by
- # plain text.
- "pages": [ # The top level pages for the documentation set.
- { # Represents a documentation page. A page can contain subpages to represent
- # nested documentation set structure.
- "content": "A String", # The Markdown content of the page. You can use <code>(== include {path}
- # ==)</code> to include content from a Markdown file.
- "subpages": [ # Subpages of this page. The order of subpages specified here will be
- # honored in the generated docset.
- # Object with schema name: Page
- ],
- "name": "A String", # 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:
- # <pre><code>pages:
- # - name: Tutorial
- # content: (== include tutorial.md ==)
- # subpages:
- # - name: Java
- # content: (== include tutorial_java.md ==)
- # </code></pre>
- # You can reference `Java` page using Markdown reference link syntax:
- # `Java`.
- },
- ],
- "overview": "A String", # Declares a single overview page. For example:
- # <pre><code>documentation:
- # summary: ...
- # overview: (== include overview.md ==)
- # </code></pre>
- # This is a shortcut for the following declaration (using pages style):
- # <pre><code>documentation:
- # summary: ...
- # pages:
- # - name: Overview
- # content: (== include overview.md ==)
- # </code></pre>
- # Note: you cannot specify both `overview` field and `pages` field.
- },
- "quota": { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
- # usage.
- #
- # The metric based quota configuration works this way:
- # - The service configuration defines a set of metrics.
- # - For API calls, the quota.metric_rules maps methods to metrics with
- # corresponding costs.
- # - The quota.limits defines limits on the metrics, which will be used for
- # quota checks at runtime.
- #
- # An example quota configuration in yaml format:
- #
- # quota:
- # limits:
- #
- # - name: apiWriteQpsPerProject
- # metric: library.googleapis.com/write_calls
- # unit: "1/min/{project}" # rate limit for consumer projects
- # values:
- # STANDARD: 10000
- #
- #
- # # The metric rules bind all methods to the read_calls metric,
- # # except for the UpdateBook and DeleteBook methods. These two methods
- # # are mapped to the write_calls metric, with the UpdateBook method
- # # consuming at twice rate as the DeleteBook method.
- # metric_rules:
- # - selector: "*"
- # metric_costs:
- # library.googleapis.com/read_calls: 1
- # - selector: google.example.library.v1.LibraryService.UpdateBook
- # metric_costs:
- # library.googleapis.com/write_calls: 2
- # - selector: google.example.library.v1.LibraryService.DeleteBook
- # metric_costs:
- # library.googleapis.com/write_calls: 1
- #
- # Corresponding Metric definition:
- #
- # metrics:
- # - name: library.googleapis.com/read_calls
- # display_name: Read requests
- # metric_kind: DELTA
- # value_type: INT64
- #
- # - name: library.googleapis.com/write_calls
- # display_name: Write requests
- # metric_kind: DELTA
- # value_type: INT64
- #
- "metricRules": [ # List of `MetricRule` definitions, each one mapping a selected method to one
- # or more metrics.
- { # Bind API methods to metrics. Binding a method to a metric causes that
- # metric's configured quota behaviors to apply to the method call.
- "metricCosts": { # 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.
- "a_key": "A String",
- },
- "selector": "A String", # Selects the methods to which this rule applies.
- #
- # Refer to selector for syntax details.
- },
- ],
- "limits": [ # List of `QuotaLimit` definitions for the service.
- { # `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`.
- "displayName": "A String", # 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.
- "name": "A String", # 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.
- "defaultLimit": "A String", # 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.
- "metric": "A String", # 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.
- "values": { # 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.
- "a_key": "A String",
- },
- "maxLimit": "A String", # 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.
- "duration": "A String", # 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.
- "freeTier": "A String", # 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.
- "unit": "A String", # 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.
- "description": "A String", # 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`).
- },
- ],
- },
- "apis": [ # A list of API interfaces exported by this service. Contains only the names,
- # versions, and method names of the interfaces.
- { # 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.
- "name": "A String", # The fully qualified name of this interface, including package name
- # followed by the interface's simple name.
- "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
- # message.
- # protobuf element, like the file in which it is defined.
- "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
- # protobuf element. For example: `"google/protobuf/source_context.proto"`.
- },
- "mixins": [ # Included interfaces. See Mixin.
- { # 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";
- # }
- # ...
- # }
- "root": "A String", # If non-empty specifies a path under which inherited HTTP paths
- # are rooted.
- "name": "A String", # The fully qualified name of the interface which is included.
- },
- ],
- "syntax": "A String", # The source syntax of the service.
- "version": "A String", # 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<major-version>`, 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.
- "options": [ # Any metadata attached to the interface.
- { # A protocol buffer option, which can be attached to a message, field,
- # enumeration, etc.
- "name": "A String", # 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"`.
- "value": { # 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.
- "a_key": "", # Properties of the object. Contains field @type with type URL.
- },
- },
- ],
- "methods": [ # The methods of this interface, in unspecified order.
- { # Method represents a method of an API interface.
- "name": "A String", # The simple name of this method.
- "requestStreaming": True or False, # If true, the request is streamed.
- "responseTypeUrl": "A String", # The URL of the output message type.
- "requestTypeUrl": "A String", # A URL of the input message type.
- "responseStreaming": True or False, # If true, the response is streamed.
- "syntax": "A String", # The source syntax of this method.
- "options": [ # Any metadata attached to the method.
- { # A protocol buffer option, which can be attached to a message, field,
- # enumeration, etc.
- "name": "A String", # 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"`.
- "value": { # 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.
- "a_key": "", # Properties of the object. Contains field @type with type URL.
- },
- },
- ],
- },
- ],
- },
- ],
- "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration. Contains only the OAuth rules.
- #
- # 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
- "rules": [ # A list of authentication rules that apply to individual API methods.
- #
- # **NOTE:** All service configuration rules follow "last one wins" order.
- { # 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.
- "oauth": { # OAuth scopes are a way to define data and permissions on data. For example, # The requirements for OAuth credentials.
- # 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.
- "canonicalScopes": "A String", # 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
- },
- "allowWithoutCredential": True or False, # If true, the service accepts API keys without any other credential.
- "requirements": [ # Requirements for additional authentication providers.
- { # User-defined authentication requirements, including support for
- # [JSON Web Token
- # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
- "providerId": "A String", # id from authentication provider.
- #
- # Example:
- #
- # provider_id: bookstore_auth
- "audiences": "A String", # 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
- },
- ],
- "selector": "A String", # Selects the methods to which this rule applies.
- #
- # Refer to selector for syntax details.
- },
- ],
- "providers": [ # Defines a set of authentication providers that a service supports.
- { # Configuration for an authentication provider, including support for
- # [JSON Web Token
- # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
- "audiences": "A String", # 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
- "jwksUri": "A String", # 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
- "id": "A String", # The unique identifier of the auth provider. It will be referred to by
- # `AuthRequirement.provider_id`.
- #
- # Example: "bookstore_auth".
- "authorizationUrl": "A String", # Redirect URL if JWT token is required but not present or is expired.
- # Implement authorizationUrl of securityDefinitions in OpenAPI spec.
- "issuer": "A String", # 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
- },
- ],
- },
- "usage": { # Configuration controlling usage of a service. # Configuration controlling usage of this service.
- "rules": [ # A list of usage rules that apply to individual API methods.
- #
- # **NOTE:** All service configuration rules follow "last one wins" order.
- { # 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
- "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
- # methods in all APIs.
- #
- # Refer to selector for syntax details.
- "skipServiceControl": True or False, # 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.
- "allowUnregisteredCalls": True or False, # If true, the selected method allows unregistered calls, e.g. calls
- # that don't identify any user or application.
- },
- ],
- "producerNotificationChannel": "A String", # 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.
- "requirements": [ # Requirements that must be satisfied before a consumer project can use the
- # service. Each requirement is of the form <service.name>/<requirement-id>;
- # for example 'serviceusage.googleapis.com/billing-enabled'.
- "A String",
- ],
- },
- "endpoints": [ # Configuration for network endpoints. Contains only the names and aliases
- # of the endpoints.
- { # `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
- "allowCors": True or False, # 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.
- "target": "A String", # 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".
- "features": [ # The list of features enabled on this endpoint.
- "A String",
- ],
- "name": "A String", # The canonical name of this endpoint.
- "aliases": [ # 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.
- "A String",
- ],
- },
- ],
- },
- "name": "A String", # The resource name of the consumer and service.
- #
- # A valid name would be:
- # - projects/123/services/serviceusage.googleapis.com
- "parent": "A String", # The resource name of the consumer.
- #
- # A valid name would be:
- # - projects/123
- }</pre>
-</div>
-
-<div class="method">
- <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None, filter=None)</code>
- <pre>List all services available to the specified project, and the current
-state of those services with respect to the project. The list includes
-all public services, all services for which the calling user has the
-`servicemanagement.services.bind` permission, and all services that have
-already been enabled on the project. The list can be filtered to
-only include services in a specific state, for example to only include
-services enabled on the project.
-
-Args:
- parent: string, Parent to search for services on.
-
-An example name would be:
-`projects/123` where `123` is the project number. (required)
- pageSize: integer, Requested size of the next page of data.
-Requested page size cannot exceed 200.
- If not set, the default page size is 50.
- pageToken: string, Token identifying which result to start with, which is returned by a
-previous list call.
- x__xgafv: string, V1 error format.
- Allowed values
- 1 - v1 error format
- 2 - v2 error format
- filter: string, Only list services that conform to the given filter.
-The allowed filter strings are `state:ENABLED` and `state:DISABLED`.
-
-Returns:
- An object of the form:
-
- { # Response message for the `ListServices` method.
- "services": [ # The available services for the requested project.
+ { # Response message for the `BatchGetServices` method.
+ "services": [ # The requested Service states.
{ # A service that is available for use by the consumer.
"state": "A String", # Whether or not the service has been enabled for use by the consumer.
"config": { # The configuration of the service. # The service configuration of the available service.
@@ -1066,26 +223,26 @@
# documentation URL.
#
# Example:
- # <pre><code>documentation:
- # summary: >
+ # <pre><code>documentation:
+ # summary: >
# The Google Calendar API gives access
# to most calendar features.
# pages:
# - name: Overview
- # content: (== include google/foo/overview.md ==)
+ # content: &#40;== include google/foo/overview.md ==&#41;
# - name: Tutorial
- # content: (== include google/foo/tutorial.md ==)
+ # content: &#40;== include google/foo/tutorial.md ==&#41;
# subpages;
# - name: Java
- # content: (== include google/foo/tutorial_java.md ==)
+ # content: &#40;== include google/foo/tutorial_java.md ==&#41;
# rules:
# - selector: google.calendar.Calendar.Get
- # description: >
+ # description: >
# ...
# - selector: google.calendar.Calendar.Put
- # description: >
+ # description: >
# ...
- # </code></pre>
+ # </code></pre>
# 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
@@ -1101,21 +258,21 @@
#
# In order to reference a proto element, the following
# notation can be used:
- # <pre><code>[fully.qualified.proto.name][]</code></pre>
+ # <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
# To override the display text used for the link, this can be used:
- # <pre><code>[display text][fully.qualified.proto.name]</code></pre>
+ # <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
# Text can be excluded from doc using the following notation:
- # <pre><code>(-- internal comment --)</code></pre>
+ # <pre><code>&#40;-- internal comment --&#41;</code></pre>
#
# 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:
- # <pre><code>(== include path/to/file ==)</code></pre>
+ # <pre><code>&#40;== include path/to/file ==&#41;</code></pre>
# 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:
- # <pre><code>(== resource_for v1.shelves.books ==)</code></pre>
+ # <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>
# The directive `suppress_warning` does not directly affect documentation
# and is documented together with service config validation.
"rules": [ # A list of documentation rules that apply to individual API elements.
@@ -1136,11 +293,28 @@
"documentationRootUrl": "A String", # The URL to the root of documentation.
"summary": "A String", # A short summary of what the service does. Can only be provided by
# plain text.
+ "serviceRootUrl": "A String", # Specifies the service root url if the default one (the service name
+ # from the yaml file) is not suitable. This can be seen in any fully
+ # specified service urls as well as sections that show a base that other
+ # urls are relative to.
+ "overview": "A String", # Declares a single overview page. For example:
+ # <pre><code>documentation:
+ # summary: ...
+ # overview: &#40;== include overview.md ==&#41;
+ # </code></pre>
+ # This is a shortcut for the following declaration (using pages style):
+ # <pre><code>documentation:
+ # summary: ...
+ # pages:
+ # - name: Overview
+ # content: &#40;== include overview.md ==&#41;
+ # </code></pre>
+ # Note: you cannot specify both `overview` field and `pages` field.
"pages": [ # The top level pages for the documentation set.
{ # Represents a documentation page. A page can contain subpages to represent
# nested documentation set structure.
- "content": "A String", # The Markdown content of the page. You can use <code>(== include {path}
- # ==)</code> to include content from a Markdown file.
+ "content": "A String", # The Markdown content of the page. You can use <code>&#40;== include {path}
+ # ==&#41;</code> to include content from a Markdown file.
"subpages": [ # Subpages of this page. The order of subpages specified here will be
# honored in the generated docset.
# Object with schema name: Page
@@ -1150,30 +324,17 @@
# 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:
- # <pre><code>pages:
+ # <pre><code>pages:
# - name: Tutorial
- # content: (== include tutorial.md ==)
+ # content: &#40;== include tutorial.md ==&#41;
# subpages:
# - name: Java
- # content: (== include tutorial_java.md ==)
- # </code></pre>
+ # content: &#40;== include tutorial_java.md ==&#41;
+ # </code></pre>
# You can reference `Java` page using Markdown reference link syntax:
# `Java`.
},
],
- "overview": "A String", # Declares a single overview page. For example:
- # <pre><code>documentation:
- # summary: ...
- # overview: (== include overview.md ==)
- # </code></pre>
- # This is a shortcut for the following declaration (using pages style):
- # <pre><code>documentation:
- # summary: ...
- # pages:
- # - name: Overview
- # content: (== include overview.md ==)
- # </code></pre>
- # Note: you cannot specify both `overview` field and `pages` field.
},
"quota": { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
# usage.
@@ -1250,12 +411,9 @@
# 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.
- "name": "A String", # 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.
+ "description": "A String", # 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`).
"defaultLimit": "A String", # 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.
@@ -1283,10 +441,7 @@
# indicating unlimited maximum quota.
#
# Used by group-based quotas only.
- "duration": "A String", # 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.
+ "duration": "A String", # Duration of this limit in textual notation. Must be "100s" or "1d".
#
# Used by group-based quotas only.
"freeTier": "A String", # Free tier value displayed in the Developers Console for this limit.
@@ -1306,9 +461,12 @@
#
# Note: the order of unit components is insignificant.
# The "1" at the beginning is required to follow the metric unit syntax.
- "description": "A String", # 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`).
+ "name": "A String", # 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.
},
],
},
@@ -1431,7 +589,7 @@
# chosen based on the product plan.
#
# The major version is also reflected in the package name of the
- # interface, which must end in `v<major-version>`, as in
+ # interface, which must end in `v<major-version>`, 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.
@@ -1566,14 +724,48 @@
{ # Configuration for an authentication provider, including support for
# [JSON Web Token
# (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
+ "jwtLocations": [ # Defines the locations to extract the JWT.
+ #
+ # JWT locations can be either from HTTP headers or URL query parameters.
+ # The rule is that the first match wins. The checking order is: checking
+ # all headers first, then URL query parameters.
+ #
+ # If not specified, default to use following 3 locations:
+ # 1) Authorization: Bearer
+ # 2) x-goog-iap-jwt-assertion
+ # 3) access_token query parameter
+ #
+ # Default locations can be specified as followings:
+ # jwt_locations:
+ # - header: Authorization
+ # value_prefix: "Bearer "
+ # - header: x-goog-iap-jwt-assertion
+ # - query: access_token
+ { # Specifies a location to extract JWT from an API request.
+ "query": "A String", # Specifies URL query parameter name to extract JWT token.
+ "valuePrefix": "A String", # The value prefix. The value format is "value_prefix{token}"
+ # Only applies to "in" header type. Must be empty for "in" query type.
+ # If not empty, the header value has to match (case sensitive) this prefix.
+ # If not matched, JWT will not be extracted. If matched, JWT will be
+ # extracted after the prefix is removed.
+ #
+ # For example, for "Authorization: Bearer {JWT}",
+ # value_prefix="Bearer " with a space at the end.
+ "header": "A String", # Specifies HTTP header name to extract JWT token.
+ },
+ ],
"audiences": "A String", # 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".
+ # be accepted. When this setting is absent, JWTs with audiences:
+ # - "https://[service.name]/[google.protobuf.Api.name]"
+ # - "https://[service.name]/"
+ # will be accepted.
+ # For example, if no audiences are in the setting, LibraryService API will
+ # accept JWTs with the following audiences:
+ # -
+ # https://library-example.googleapis.com/google.example.library.v1.LibraryService
+ # - https://library-example.googleapis.com/
#
# Example:
#
@@ -1647,6 +839,26 @@
# that don't identify any user or application.
},
],
+ "serviceIdentity": { # The per-product per-project service identity for a service. # The configuration of a per-product per-project service identity.
+ #
+ #
+ # Use this field to configure per-product per-project service identity.
+ # Example of a service identity configuration.
+ #
+ # usage:
+ # service_identity:
+ # - service_account_parent: "projects/123456789"
+ # display_name: "Cloud XXX Service Agent"
+ # description: "Used as the identity of Cloud XXX to access resources"
+ "displayName": "A String", # Optional. A user-specified name for the service account.
+ # Must be less than or equal to 100 UTF-8 bytes.
+ "description": "A String", # Optional. A user-specified opaque description of the service account.
+ # Must be less than or equal to 256 UTF-8 bytes.
+ "serviceAccountParent": "A String", # A service account project that hosts the service accounts.
+ #
+ # An example name would be:
+ # `projects/123456789`
+ },
"producerNotificationChannel": "A String", # The full resource name of a channel used for sending notifications to the
# service producer.
#
@@ -1656,7 +868,1654 @@
# of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format
# documented in https://cloud.google.com/pubsub/docs/overview.
"requirements": [ # Requirements that must be satisfied before a consumer project can use the
- # service. Each requirement is of the form <service.name>/<requirement-id>;
+ # service. Each requirement is of the form <service.name>/<requirement-id>;
+ # for example 'serviceusage.googleapis.com/billing-enabled'.
+ "A String",
+ ],
+ },
+ "endpoints": [ # Configuration for network endpoints. Contains only the names and aliases
+ # of the endpoints.
+ { # `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
+ "allowCors": True or False, # 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.
+ "target": "A String", # 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".
+ "features": [ # The list of features enabled on this endpoint.
+ "A String",
+ ],
+ "name": "A String", # The canonical name of this endpoint.
+ "aliases": [ # 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.
+ "A String",
+ ],
+ },
+ ],
+ },
+ "name": "A String", # The resource name of the consumer and service.
+ #
+ # A valid name would be:
+ # - projects/123/services/serviceusage.googleapis.com
+ "parent": "A String", # The resource name of the consumer.
+ #
+ # A valid name would be:
+ # - projects/123
+ },
+ ],
+ }</pre>
+</div>
+
+<div class="method">
+ <code class="details" id="disable">disable(name, body=None, x__xgafv=None)</code>
+ <pre>Disable a service so that it can no longer be used with a project.
+This prevents unintended usage that may cause unexpected billing
+charges or security leaks.
+
+It is not valid to call the disable method on a service that is not
+currently enabled. Callers will receive a `FAILED_PRECONDITION` status if
+the target service is not currently enabled.
+
+Args:
+ name: string, Name of the consumer and service to disable the service on.
+
+The enable and disable methods currently only support projects.
+
+An example name would be:
+`projects/123/services/serviceusage.googleapis.com` where `123` is the
+project number. (required)
+ body: object, The request body.
+ The object takes the form of:
+
+{ # Request message for the `DisableService` method.
+ "disableDependentServices": True or False, # Indicates if services that are enabled and which depend on this service
+ # should also be disabled. If not set, an error will be generated if any
+ # enabled services depend on the service to be disabled. When set, the
+ # service, and any enabled services that depend on it, will be disabled
+ # together.
+ }
+
+ x__xgafv: string, V1 error format.
+ Allowed values
+ 1 - v1 error format
+ 2 - v2 error format
+
+Returns:
+ An object of the form:
+
+ { # This resource represents a long-running operation that is the result of a
+ # network API call.
+ "response": { # 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`.
+ "a_key": "", # Properties of the object. Contains field @type with type URL.
+ },
+ "metadata": { # 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.
+ "a_key": "", # Properties of the object. Contains field @type with type URL.
+ },
+ "done": True or False, # 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.
+ "name": "A String", # 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 be a resource name ending with `operations/{unique_id}`.
+ "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
+ # different programming environments, including REST APIs and RPC APIs. It is
+ # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+ # three pieces of data: error code, error message, and error details.
+ #
+ # You can find out more about this error model and how to work with it in the
+ # [API Design Guide](https://cloud.google.com/apis/design/errors).
+ "message": "A String", # 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.
+ "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+ "details": [ # A list of messages that carry the error details. There is a common set of
+ # message types for APIs to use.
+ {
+ "a_key": "", # Properties of the object. Contains field @type with type URL.
+ },
+ ],
+ },
+ }</pre>
+</div>
+
+<div class="method">
+ <code class="details" id="enable">enable(name, body=None, x__xgafv=None)</code>
+ <pre>Enable a service so that it can be used with a project.
+
+Args:
+ name: string, Name of the consumer and service to enable the service on.
+
+The `EnableService` and `DisableService` methods currently only support
+projects.
+
+Enabling a service requires that the service is public or is shared with
+the user enabling the service.
+
+An example name would be:
+`projects/123/services/serviceusage.googleapis.com` where `123` is the
+project number. (required)
+ body: object, The request body.
+ The object takes the form of:
+
+{ # Request message for the `EnableService` method.
+ }
+
+ x__xgafv: string, V1 error format.
+ Allowed values
+ 1 - v1 error format
+ 2 - v2 error format
+
+Returns:
+ An object of the form:
+
+ { # This resource represents a long-running operation that is the result of a
+ # network API call.
+ "response": { # 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`.
+ "a_key": "", # Properties of the object. Contains field @type with type URL.
+ },
+ "metadata": { # 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.
+ "a_key": "", # Properties of the object. Contains field @type with type URL.
+ },
+ "done": True or False, # 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.
+ "name": "A String", # 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 be a resource name ending with `operations/{unique_id}`.
+ "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
+ # different programming environments, including REST APIs and RPC APIs. It is
+ # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+ # three pieces of data: error code, error message, and error details.
+ #
+ # You can find out more about this error model and how to work with it in the
+ # [API Design Guide](https://cloud.google.com/apis/design/errors).
+ "message": "A String", # 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.
+ "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+ "details": [ # A list of messages that carry the error details. There is a common set of
+ # message types for APIs to use.
+ {
+ "a_key": "", # Properties of the object. Contains field @type with type URL.
+ },
+ ],
+ },
+ }</pre>
+</div>
+
+<div class="method">
+ <code class="details" id="get">get(name, x__xgafv=None)</code>
+ <pre>Returns the service configuration and enabled state for a given service.
+
+Args:
+ name: string, Name of the consumer and service to get the `ConsumerState` for.
+
+An example name would be:
+`projects/123/services/serviceusage.googleapis.com` where `123` is the
+project number. (required)
+ x__xgafv: string, V1 error format.
+ Allowed values
+ 1 - v1 error format
+ 2 - v2 error format
+
+Returns:
+ An object of the form:
+
+ { # A service that is available for use by the consumer.
+ "state": "A String", # Whether or not the service has been enabled for use by the consumer.
+ "config": { # The configuration of the service. # The service configuration of the available service.
+ # Some fields may be filtered out of the configuration in responses to
+ # the `ListServices` method. These fields are present only in responses to
+ # the `GetService` method.
+ "name": "A String", # The DNS address at which this service is available.
+ #
+ # An example DNS address would be:
+ # `calendar.googleapis.com`.
+ "title": "A String", # The product title for this service.
+ "documentation": { # `Documentation` provides the information for describing a service. # Additional API documentation. Contains only the summary and the
+ # documentation URL.
+ #
+ # Example:
+ # <pre><code>documentation:
+ # summary: >
+ # The Google Calendar API gives access
+ # to most calendar features.
+ # pages:
+ # - name: Overview
+ # content: &#40;== include google/foo/overview.md ==&#41;
+ # - name: Tutorial
+ # content: &#40;== include google/foo/tutorial.md ==&#41;
+ # subpages;
+ # - name: Java
+ # content: &#40;== include google/foo/tutorial_java.md ==&#41;
+ # rules:
+ # - selector: google.calendar.Calendar.Get
+ # description: >
+ # ...
+ # - selector: google.calendar.Calendar.Put
+ # description: >
+ # ...
+ # </code></pre>
+ # 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:
+ # <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
+ # To override the display text used for the link, this can be used:
+ # <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
+ # Text can be excluded from doc using the following notation:
+ # <pre><code>&#40;-- internal comment --&#41;</code></pre>
+ #
+ # 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:
+ # <pre><code>&#40;== include path/to/file ==&#41;</code></pre>
+ # 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:
+ # <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>
+ # The directive `suppress_warning` does not directly affect documentation
+ # and is documented together with service config validation.
+ "rules": [ # A list of documentation rules that apply to individual API elements.
+ #
+ # **NOTE:** All service configuration rules follow "last one wins" order.
+ { # A documentation rule provides information about individual API elements.
+ "description": "A String", # Description of the selected API(s).
+ "deprecationDescription": "A String", # Deprecation description of the selected element(s). It can be provided if
+ # an element is marked as `deprecated`.
+ "selector": "A String", # 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". A
+ # wildcard will match one or more components. To specify a default for all
+ # applicable elements, the whole pattern "*" is used.
+ },
+ ],
+ "documentationRootUrl": "A String", # The URL to the root of documentation.
+ "summary": "A String", # A short summary of what the service does. Can only be provided by
+ # plain text.
+ "serviceRootUrl": "A String", # Specifies the service root url if the default one (the service name
+ # from the yaml file) is not suitable. This can be seen in any fully
+ # specified service urls as well as sections that show a base that other
+ # urls are relative to.
+ "overview": "A String", # Declares a single overview page. For example:
+ # <pre><code>documentation:
+ # summary: ...
+ # overview: &#40;== include overview.md ==&#41;
+ # </code></pre>
+ # This is a shortcut for the following declaration (using pages style):
+ # <pre><code>documentation:
+ # summary: ...
+ # pages:
+ # - name: Overview
+ # content: &#40;== include overview.md ==&#41;
+ # </code></pre>
+ # Note: you cannot specify both `overview` field and `pages` field.
+ "pages": [ # The top level pages for the documentation set.
+ { # Represents a documentation page. A page can contain subpages to represent
+ # nested documentation set structure.
+ "content": "A String", # The Markdown content of the page. You can use <code>&#40;== include {path}
+ # ==&#41;</code> to include content from a Markdown file.
+ "subpages": [ # Subpages of this page. The order of subpages specified here will be
+ # honored in the generated docset.
+ # Object with schema name: Page
+ ],
+ "name": "A String", # 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:
+ # <pre><code>pages:
+ # - name: Tutorial
+ # content: &#40;== include tutorial.md ==&#41;
+ # subpages:
+ # - name: Java
+ # content: &#40;== include tutorial_java.md ==&#41;
+ # </code></pre>
+ # You can reference `Java` page using Markdown reference link syntax:
+ # `Java`.
+ },
+ ],
+ },
+ "quota": { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
+ # usage.
+ #
+ # The metric based quota configuration works this way:
+ # - The service configuration defines a set of metrics.
+ # - For API calls, the quota.metric_rules maps methods to metrics with
+ # corresponding costs.
+ # - The quota.limits defines limits on the metrics, which will be used for
+ # quota checks at runtime.
+ #
+ # An example quota configuration in yaml format:
+ #
+ # quota:
+ # limits:
+ #
+ # - name: apiWriteQpsPerProject
+ # metric: library.googleapis.com/write_calls
+ # unit: "1/min/{project}" # rate limit for consumer projects
+ # values:
+ # STANDARD: 10000
+ #
+ #
+ # # The metric rules bind all methods to the read_calls metric,
+ # # except for the UpdateBook and DeleteBook methods. These two methods
+ # # are mapped to the write_calls metric, with the UpdateBook method
+ # # consuming at twice rate as the DeleteBook method.
+ # metric_rules:
+ # - selector: "*"
+ # metric_costs:
+ # library.googleapis.com/read_calls: 1
+ # - selector: google.example.library.v1.LibraryService.UpdateBook
+ # metric_costs:
+ # library.googleapis.com/write_calls: 2
+ # - selector: google.example.library.v1.LibraryService.DeleteBook
+ # metric_costs:
+ # library.googleapis.com/write_calls: 1
+ #
+ # Corresponding Metric definition:
+ #
+ # metrics:
+ # - name: library.googleapis.com/read_calls
+ # display_name: Read requests
+ # metric_kind: DELTA
+ # value_type: INT64
+ #
+ # - name: library.googleapis.com/write_calls
+ # display_name: Write requests
+ # metric_kind: DELTA
+ # value_type: INT64
+ #
+ "metricRules": [ # List of `MetricRule` definitions, each one mapping a selected method to one
+ # or more metrics.
+ { # Bind API methods to metrics. Binding a method to a metric causes that
+ # metric's configured quota behaviors to apply to the method call.
+ "metricCosts": { # 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.
+ "a_key": "A String",
+ },
+ "selector": "A String", # Selects the methods to which this rule applies.
+ #
+ # Refer to selector for syntax details.
+ },
+ ],
+ "limits": [ # List of `QuotaLimit` definitions for the service.
+ { # `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`.
+ "displayName": "A String", # 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.
+ "description": "A String", # 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`).
+ "defaultLimit": "A String", # 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.
+ "metric": "A String", # 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.
+ "values": { # 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.
+ "a_key": "A String",
+ },
+ "maxLimit": "A String", # 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.
+ "duration": "A String", # Duration of this limit in textual notation. Must be "100s" or "1d".
+ #
+ # Used by group-based quotas only.
+ "freeTier": "A String", # 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.
+ "unit": "A String", # 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.
+ "name": "A String", # 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.
+ },
+ ],
+ },
+ "apis": [ # A list of API interfaces exported by this service. Contains only the names,
+ # versions, and method names of the interfaces.
+ { # 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.
+ "name": "A String", # The fully qualified name of this interface, including package name
+ # followed by the interface's simple name.
+ "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
+ # message.
+ # protobuf element, like the file in which it is defined.
+ "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+ # protobuf element. For example: `"google/protobuf/source_context.proto"`.
+ },
+ "mixins": [ # Included interfaces. See Mixin.
+ { # 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";
+ # }
+ # ...
+ # }
+ "root": "A String", # If non-empty specifies a path under which inherited HTTP paths
+ # are rooted.
+ "name": "A String", # The fully qualified name of the interface which is included.
+ },
+ ],
+ "syntax": "A String", # The source syntax of the service.
+ "version": "A String", # 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<major-version>`, 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.
+ "options": [ # Any metadata attached to the interface.
+ { # A protocol buffer option, which can be attached to a message, field,
+ # enumeration, etc.
+ "name": "A String", # 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"`.
+ "value": { # 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.
+ "a_key": "", # Properties of the object. Contains field @type with type URL.
+ },
+ },
+ ],
+ "methods": [ # The methods of this interface, in unspecified order.
+ { # Method represents a method of an API interface.
+ "name": "A String", # The simple name of this method.
+ "requestStreaming": True or False, # If true, the request is streamed.
+ "responseTypeUrl": "A String", # The URL of the output message type.
+ "requestTypeUrl": "A String", # A URL of the input message type.
+ "responseStreaming": True or False, # If true, the response is streamed.
+ "syntax": "A String", # The source syntax of this method.
+ "options": [ # Any metadata attached to the method.
+ { # A protocol buffer option, which can be attached to a message, field,
+ # enumeration, etc.
+ "name": "A String", # 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"`.
+ "value": { # 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.
+ "a_key": "", # Properties of the object. Contains field @type with type URL.
+ },
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration. Contains only the OAuth rules.
+ #
+ # 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
+ "rules": [ # A list of authentication rules that apply to individual API methods.
+ #
+ # **NOTE:** All service configuration rules follow "last one wins" order.
+ { # 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.
+ "oauth": { # OAuth scopes are a way to define data and permissions on data. For example, # The requirements for OAuth credentials.
+ # 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.
+ "canonicalScopes": "A String", # 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
+ },
+ "allowWithoutCredential": True or False, # If true, the service accepts API keys without any other credential.
+ "requirements": [ # Requirements for additional authentication providers.
+ { # User-defined authentication requirements, including support for
+ # [JSON Web Token
+ # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
+ "providerId": "A String", # id from authentication provider.
+ #
+ # Example:
+ #
+ # provider_id: bookstore_auth
+ "audiences": "A String", # 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
+ },
+ ],
+ "selector": "A String", # Selects the methods to which this rule applies.
+ #
+ # Refer to selector for syntax details.
+ },
+ ],
+ "providers": [ # Defines a set of authentication providers that a service supports.
+ { # Configuration for an authentication provider, including support for
+ # [JSON Web Token
+ # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
+ "jwtLocations": [ # Defines the locations to extract the JWT.
+ #
+ # JWT locations can be either from HTTP headers or URL query parameters.
+ # The rule is that the first match wins. The checking order is: checking
+ # all headers first, then URL query parameters.
+ #
+ # If not specified, default to use following 3 locations:
+ # 1) Authorization: Bearer
+ # 2) x-goog-iap-jwt-assertion
+ # 3) access_token query parameter
+ #
+ # Default locations can be specified as followings:
+ # jwt_locations:
+ # - header: Authorization
+ # value_prefix: "Bearer "
+ # - header: x-goog-iap-jwt-assertion
+ # - query: access_token
+ { # Specifies a location to extract JWT from an API request.
+ "query": "A String", # Specifies URL query parameter name to extract JWT token.
+ "valuePrefix": "A String", # The value prefix. The value format is "value_prefix{token}"
+ # Only applies to "in" header type. Must be empty for "in" query type.
+ # If not empty, the header value has to match (case sensitive) this prefix.
+ # If not matched, JWT will not be extracted. If matched, JWT will be
+ # extracted after the prefix is removed.
+ #
+ # For example, for "Authorization: Bearer {JWT}",
+ # value_prefix="Bearer " with a space at the end.
+ "header": "A String", # Specifies HTTP header name to extract JWT token.
+ },
+ ],
+ "audiences": "A String", # 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, JWTs with audiences:
+ # - "https://[service.name]/[google.protobuf.Api.name]"
+ # - "https://[service.name]/"
+ # will be accepted.
+ # For example, if no audiences are in the setting, LibraryService API will
+ # accept JWTs with the following audiences:
+ # -
+ # https://library-example.googleapis.com/google.example.library.v1.LibraryService
+ # - https://library-example.googleapis.com/
+ #
+ # Example:
+ #
+ # audiences: bookstore_android.apps.googleusercontent.com,
+ # bookstore_web.apps.googleusercontent.com
+ "jwksUri": "A String", # 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
+ "id": "A String", # The unique identifier of the auth provider. It will be referred to by
+ # `AuthRequirement.provider_id`.
+ #
+ # Example: "bookstore_auth".
+ "authorizationUrl": "A String", # Redirect URL if JWT token is required but not present or is expired.
+ # Implement authorizationUrl of securityDefinitions in OpenAPI spec.
+ "issuer": "A String", # 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
+ },
+ ],
+ },
+ "usage": { # Configuration controlling usage of a service. # Configuration controlling usage of this service.
+ "rules": [ # A list of usage rules that apply to individual API methods.
+ #
+ # **NOTE:** All service configuration rules follow "last one wins" order.
+ { # 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
+ "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
+ # methods in all APIs.
+ #
+ # Refer to selector for syntax details.
+ "skipServiceControl": True or False, # 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.
+ "allowUnregisteredCalls": True or False, # If true, the selected method allows unregistered calls, e.g. calls
+ # that don't identify any user or application.
+ },
+ ],
+ "serviceIdentity": { # The per-product per-project service identity for a service. # The configuration of a per-product per-project service identity.
+ #
+ #
+ # Use this field to configure per-product per-project service identity.
+ # Example of a service identity configuration.
+ #
+ # usage:
+ # service_identity:
+ # - service_account_parent: "projects/123456789"
+ # display_name: "Cloud XXX Service Agent"
+ # description: "Used as the identity of Cloud XXX to access resources"
+ "displayName": "A String", # Optional. A user-specified name for the service account.
+ # Must be less than or equal to 100 UTF-8 bytes.
+ "description": "A String", # Optional. A user-specified opaque description of the service account.
+ # Must be less than or equal to 256 UTF-8 bytes.
+ "serviceAccountParent": "A String", # A service account project that hosts the service accounts.
+ #
+ # An example name would be:
+ # `projects/123456789`
+ },
+ "producerNotificationChannel": "A String", # 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.
+ "requirements": [ # Requirements that must be satisfied before a consumer project can use the
+ # service. Each requirement is of the form <service.name>/<requirement-id>;
+ # for example 'serviceusage.googleapis.com/billing-enabled'.
+ "A String",
+ ],
+ },
+ "endpoints": [ # Configuration for network endpoints. Contains only the names and aliases
+ # of the endpoints.
+ { # `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
+ "allowCors": True or False, # 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.
+ "target": "A String", # 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".
+ "features": [ # The list of features enabled on this endpoint.
+ "A String",
+ ],
+ "name": "A String", # The canonical name of this endpoint.
+ "aliases": [ # 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.
+ "A String",
+ ],
+ },
+ ],
+ },
+ "name": "A String", # The resource name of the consumer and service.
+ #
+ # A valid name would be:
+ # - projects/123/services/serviceusage.googleapis.com
+ "parent": "A String", # The resource name of the consumer.
+ #
+ # A valid name would be:
+ # - projects/123
+ }</pre>
+</div>
+
+<div class="method">
+ <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None, filter=None)</code>
+ <pre>List all services available to the specified project, and the current
+state of those services with respect to the project. The list includes
+all public services, all services for which the calling user has the
+`servicemanagement.services.bind` permission, and all services that have
+already been enabled on the project. The list can be filtered to
+only include services in a specific state, for example to only include
+services enabled on the project.
+
+Args:
+ parent: string, Parent to search for services on.
+
+An example name would be:
+`projects/123` where `123` is the project number. (required)
+ pageToken: string, Token identifying which result to start with, which is returned by a
+previous list call.
+ x__xgafv: string, V1 error format.
+ Allowed values
+ 1 - v1 error format
+ 2 - v2 error format
+ pageSize: integer, Requested size of the next page of data.
+Requested page size cannot exceed 200.
+ If not set, the default page size is 50.
+ filter: string, Only list services that conform to the given filter.
+The allowed filter strings are `state:ENABLED` and `state:DISABLED`.
+
+Returns:
+ An object of the form:
+
+ { # Response message for the `ListServices` method.
+ "services": [ # The available services for the requested project.
+ { # A service that is available for use by the consumer.
+ "state": "A String", # Whether or not the service has been enabled for use by the consumer.
+ "config": { # The configuration of the service. # The service configuration of the available service.
+ # Some fields may be filtered out of the configuration in responses to
+ # the `ListServices` method. These fields are present only in responses to
+ # the `GetService` method.
+ "name": "A String", # The DNS address at which this service is available.
+ #
+ # An example DNS address would be:
+ # `calendar.googleapis.com`.
+ "title": "A String", # The product title for this service.
+ "documentation": { # `Documentation` provides the information for describing a service. # Additional API documentation. Contains only the summary and the
+ # documentation URL.
+ #
+ # Example:
+ # <pre><code>documentation:
+ # summary: >
+ # The Google Calendar API gives access
+ # to most calendar features.
+ # pages:
+ # - name: Overview
+ # content: &#40;== include google/foo/overview.md ==&#41;
+ # - name: Tutorial
+ # content: &#40;== include google/foo/tutorial.md ==&#41;
+ # subpages;
+ # - name: Java
+ # content: &#40;== include google/foo/tutorial_java.md ==&#41;
+ # rules:
+ # - selector: google.calendar.Calendar.Get
+ # description: >
+ # ...
+ # - selector: google.calendar.Calendar.Put
+ # description: >
+ # ...
+ # </code></pre>
+ # 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:
+ # <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
+ # To override the display text used for the link, this can be used:
+ # <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
+ # Text can be excluded from doc using the following notation:
+ # <pre><code>&#40;-- internal comment --&#41;</code></pre>
+ #
+ # 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:
+ # <pre><code>&#40;== include path/to/file ==&#41;</code></pre>
+ # 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:
+ # <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>
+ # The directive `suppress_warning` does not directly affect documentation
+ # and is documented together with service config validation.
+ "rules": [ # A list of documentation rules that apply to individual API elements.
+ #
+ # **NOTE:** All service configuration rules follow "last one wins" order.
+ { # A documentation rule provides information about individual API elements.
+ "description": "A String", # Description of the selected API(s).
+ "deprecationDescription": "A String", # Deprecation description of the selected element(s). It can be provided if
+ # an element is marked as `deprecated`.
+ "selector": "A String", # 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". A
+ # wildcard will match one or more components. To specify a default for all
+ # applicable elements, the whole pattern "*" is used.
+ },
+ ],
+ "documentationRootUrl": "A String", # The URL to the root of documentation.
+ "summary": "A String", # A short summary of what the service does. Can only be provided by
+ # plain text.
+ "serviceRootUrl": "A String", # Specifies the service root url if the default one (the service name
+ # from the yaml file) is not suitable. This can be seen in any fully
+ # specified service urls as well as sections that show a base that other
+ # urls are relative to.
+ "overview": "A String", # Declares a single overview page. For example:
+ # <pre><code>documentation:
+ # summary: ...
+ # overview: &#40;== include overview.md ==&#41;
+ # </code></pre>
+ # This is a shortcut for the following declaration (using pages style):
+ # <pre><code>documentation:
+ # summary: ...
+ # pages:
+ # - name: Overview
+ # content: &#40;== include overview.md ==&#41;
+ # </code></pre>
+ # Note: you cannot specify both `overview` field and `pages` field.
+ "pages": [ # The top level pages for the documentation set.
+ { # Represents a documentation page. A page can contain subpages to represent
+ # nested documentation set structure.
+ "content": "A String", # The Markdown content of the page. You can use <code>&#40;== include {path}
+ # ==&#41;</code> to include content from a Markdown file.
+ "subpages": [ # Subpages of this page. The order of subpages specified here will be
+ # honored in the generated docset.
+ # Object with schema name: Page
+ ],
+ "name": "A String", # 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:
+ # <pre><code>pages:
+ # - name: Tutorial
+ # content: &#40;== include tutorial.md ==&#41;
+ # subpages:
+ # - name: Java
+ # content: &#40;== include tutorial_java.md ==&#41;
+ # </code></pre>
+ # You can reference `Java` page using Markdown reference link syntax:
+ # `Java`.
+ },
+ ],
+ },
+ "quota": { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
+ # usage.
+ #
+ # The metric based quota configuration works this way:
+ # - The service configuration defines a set of metrics.
+ # - For API calls, the quota.metric_rules maps methods to metrics with
+ # corresponding costs.
+ # - The quota.limits defines limits on the metrics, which will be used for
+ # quota checks at runtime.
+ #
+ # An example quota configuration in yaml format:
+ #
+ # quota:
+ # limits:
+ #
+ # - name: apiWriteQpsPerProject
+ # metric: library.googleapis.com/write_calls
+ # unit: "1/min/{project}" # rate limit for consumer projects
+ # values:
+ # STANDARD: 10000
+ #
+ #
+ # # The metric rules bind all methods to the read_calls metric,
+ # # except for the UpdateBook and DeleteBook methods. These two methods
+ # # are mapped to the write_calls metric, with the UpdateBook method
+ # # consuming at twice rate as the DeleteBook method.
+ # metric_rules:
+ # - selector: "*"
+ # metric_costs:
+ # library.googleapis.com/read_calls: 1
+ # - selector: google.example.library.v1.LibraryService.UpdateBook
+ # metric_costs:
+ # library.googleapis.com/write_calls: 2
+ # - selector: google.example.library.v1.LibraryService.DeleteBook
+ # metric_costs:
+ # library.googleapis.com/write_calls: 1
+ #
+ # Corresponding Metric definition:
+ #
+ # metrics:
+ # - name: library.googleapis.com/read_calls
+ # display_name: Read requests
+ # metric_kind: DELTA
+ # value_type: INT64
+ #
+ # - name: library.googleapis.com/write_calls
+ # display_name: Write requests
+ # metric_kind: DELTA
+ # value_type: INT64
+ #
+ "metricRules": [ # List of `MetricRule` definitions, each one mapping a selected method to one
+ # or more metrics.
+ { # Bind API methods to metrics. Binding a method to a metric causes that
+ # metric's configured quota behaviors to apply to the method call.
+ "metricCosts": { # 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.
+ "a_key": "A String",
+ },
+ "selector": "A String", # Selects the methods to which this rule applies.
+ #
+ # Refer to selector for syntax details.
+ },
+ ],
+ "limits": [ # List of `QuotaLimit` definitions for the service.
+ { # `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`.
+ "displayName": "A String", # 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.
+ "description": "A String", # 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`).
+ "defaultLimit": "A String", # 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.
+ "metric": "A String", # 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.
+ "values": { # 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.
+ "a_key": "A String",
+ },
+ "maxLimit": "A String", # 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.
+ "duration": "A String", # Duration of this limit in textual notation. Must be "100s" or "1d".
+ #
+ # Used by group-based quotas only.
+ "freeTier": "A String", # 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.
+ "unit": "A String", # 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.
+ "name": "A String", # 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.
+ },
+ ],
+ },
+ "apis": [ # A list of API interfaces exported by this service. Contains only the names,
+ # versions, and method names of the interfaces.
+ { # 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.
+ "name": "A String", # The fully qualified name of this interface, including package name
+ # followed by the interface's simple name.
+ "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
+ # message.
+ # protobuf element, like the file in which it is defined.
+ "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+ # protobuf element. For example: `"google/protobuf/source_context.proto"`.
+ },
+ "mixins": [ # Included interfaces. See Mixin.
+ { # 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";
+ # }
+ # ...
+ # }
+ "root": "A String", # If non-empty specifies a path under which inherited HTTP paths
+ # are rooted.
+ "name": "A String", # The fully qualified name of the interface which is included.
+ },
+ ],
+ "syntax": "A String", # The source syntax of the service.
+ "version": "A String", # 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<major-version>`, 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.
+ "options": [ # Any metadata attached to the interface.
+ { # A protocol buffer option, which can be attached to a message, field,
+ # enumeration, etc.
+ "name": "A String", # 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"`.
+ "value": { # 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.
+ "a_key": "", # Properties of the object. Contains field @type with type URL.
+ },
+ },
+ ],
+ "methods": [ # The methods of this interface, in unspecified order.
+ { # Method represents a method of an API interface.
+ "name": "A String", # The simple name of this method.
+ "requestStreaming": True or False, # If true, the request is streamed.
+ "responseTypeUrl": "A String", # The URL of the output message type.
+ "requestTypeUrl": "A String", # A URL of the input message type.
+ "responseStreaming": True or False, # If true, the response is streamed.
+ "syntax": "A String", # The source syntax of this method.
+ "options": [ # Any metadata attached to the method.
+ { # A protocol buffer option, which can be attached to a message, field,
+ # enumeration, etc.
+ "name": "A String", # 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"`.
+ "value": { # 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.
+ "a_key": "", # Properties of the object. Contains field @type with type URL.
+ },
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration. Contains only the OAuth rules.
+ #
+ # 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
+ "rules": [ # A list of authentication rules that apply to individual API methods.
+ #
+ # **NOTE:** All service configuration rules follow "last one wins" order.
+ { # 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.
+ "oauth": { # OAuth scopes are a way to define data and permissions on data. For example, # The requirements for OAuth credentials.
+ # 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.
+ "canonicalScopes": "A String", # 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
+ },
+ "allowWithoutCredential": True or False, # If true, the service accepts API keys without any other credential.
+ "requirements": [ # Requirements for additional authentication providers.
+ { # User-defined authentication requirements, including support for
+ # [JSON Web Token
+ # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
+ "providerId": "A String", # id from authentication provider.
+ #
+ # Example:
+ #
+ # provider_id: bookstore_auth
+ "audiences": "A String", # 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
+ },
+ ],
+ "selector": "A String", # Selects the methods to which this rule applies.
+ #
+ # Refer to selector for syntax details.
+ },
+ ],
+ "providers": [ # Defines a set of authentication providers that a service supports.
+ { # Configuration for an authentication provider, including support for
+ # [JSON Web Token
+ # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
+ "jwtLocations": [ # Defines the locations to extract the JWT.
+ #
+ # JWT locations can be either from HTTP headers or URL query parameters.
+ # The rule is that the first match wins. The checking order is: checking
+ # all headers first, then URL query parameters.
+ #
+ # If not specified, default to use following 3 locations:
+ # 1) Authorization: Bearer
+ # 2) x-goog-iap-jwt-assertion
+ # 3) access_token query parameter
+ #
+ # Default locations can be specified as followings:
+ # jwt_locations:
+ # - header: Authorization
+ # value_prefix: "Bearer "
+ # - header: x-goog-iap-jwt-assertion
+ # - query: access_token
+ { # Specifies a location to extract JWT from an API request.
+ "query": "A String", # Specifies URL query parameter name to extract JWT token.
+ "valuePrefix": "A String", # The value prefix. The value format is "value_prefix{token}"
+ # Only applies to "in" header type. Must be empty for "in" query type.
+ # If not empty, the header value has to match (case sensitive) this prefix.
+ # If not matched, JWT will not be extracted. If matched, JWT will be
+ # extracted after the prefix is removed.
+ #
+ # For example, for "Authorization: Bearer {JWT}",
+ # value_prefix="Bearer " with a space at the end.
+ "header": "A String", # Specifies HTTP header name to extract JWT token.
+ },
+ ],
+ "audiences": "A String", # 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, JWTs with audiences:
+ # - "https://[service.name]/[google.protobuf.Api.name]"
+ # - "https://[service.name]/"
+ # will be accepted.
+ # For example, if no audiences are in the setting, LibraryService API will
+ # accept JWTs with the following audiences:
+ # -
+ # https://library-example.googleapis.com/google.example.library.v1.LibraryService
+ # - https://library-example.googleapis.com/
+ #
+ # Example:
+ #
+ # audiences: bookstore_android.apps.googleusercontent.com,
+ # bookstore_web.apps.googleusercontent.com
+ "jwksUri": "A String", # 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
+ "id": "A String", # The unique identifier of the auth provider. It will be referred to by
+ # `AuthRequirement.provider_id`.
+ #
+ # Example: "bookstore_auth".
+ "authorizationUrl": "A String", # Redirect URL if JWT token is required but not present or is expired.
+ # Implement authorizationUrl of securityDefinitions in OpenAPI spec.
+ "issuer": "A String", # 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
+ },
+ ],
+ },
+ "usage": { # Configuration controlling usage of a service. # Configuration controlling usage of this service.
+ "rules": [ # A list of usage rules that apply to individual API methods.
+ #
+ # **NOTE:** All service configuration rules follow "last one wins" order.
+ { # 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
+ "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
+ # methods in all APIs.
+ #
+ # Refer to selector for syntax details.
+ "skipServiceControl": True or False, # 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.
+ "allowUnregisteredCalls": True or False, # If true, the selected method allows unregistered calls, e.g. calls
+ # that don't identify any user or application.
+ },
+ ],
+ "serviceIdentity": { # The per-product per-project service identity for a service. # The configuration of a per-product per-project service identity.
+ #
+ #
+ # Use this field to configure per-product per-project service identity.
+ # Example of a service identity configuration.
+ #
+ # usage:
+ # service_identity:
+ # - service_account_parent: "projects/123456789"
+ # display_name: "Cloud XXX Service Agent"
+ # description: "Used as the identity of Cloud XXX to access resources"
+ "displayName": "A String", # Optional. A user-specified name for the service account.
+ # Must be less than or equal to 100 UTF-8 bytes.
+ "description": "A String", # Optional. A user-specified opaque description of the service account.
+ # Must be less than or equal to 256 UTF-8 bytes.
+ "serviceAccountParent": "A String", # A service account project that hosts the service accounts.
+ #
+ # An example name would be:
+ # `projects/123456789`
+ },
+ "producerNotificationChannel": "A String", # 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.
+ "requirements": [ # Requirements that must be satisfied before a consumer project can use the
+ # service. Each requirement is of the form <service.name>/<requirement-id>;
# for example 'serviceusage.googleapis.com/billing-enabled'.
"A String",
],