docs: update docs/dyn (#1096)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/6f0f288a-a1e8-4b2d-a85f-00b1c6150185/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/39b7149da4026765385403632db3c6f63db96b2c
Source-Link: https://github.com/googleapis/synthtool/commit/9a7d9fbb7045c34c9d3d22c1ff766eeae51f04c9
Source-Link: https://github.com/googleapis/synthtool/commit/dc9903a8c30c3662b6098f0e4a97f221d67268b2
Source-Link: https://github.com/googleapis/synthtool/commit/7fcc405a579d5d53a726ff3da1b7c8c08f0f2d58
Source-Link: https://github.com/googleapis/synthtool/commit/d5fc0bcf9ea9789c5b0e3154a9e3b29e5cea6116
Source-Link: https://github.com/googleapis/synthtool/commit/e89175cf074dccc4babb4eca66ae913696e47a71
Source-Link: https://github.com/googleapis/synthtool/commit/7d652819519dfa24da9e14548232e4aaba71a11c
Source-Link: https://github.com/googleapis/synthtool/commit/7db8a6c5ffb12a6e4c2f799c18f00f7f3d60e279
Source-Link: https://github.com/googleapis/synthtool/commit/1f1148d3c7a7a52f0c98077f976bd9b3c948ee2b
Source-Link: https://github.com/googleapis/synthtool/commit/2c8aecedd55b0480fb4e123b6e07fa5b12953862
Source-Link: https://github.com/googleapis/synthtool/commit/3d3e94c4e02370f307a9a200b0c743c3d8d19f29
Source-Link: https://github.com/googleapis/synthtool/commit/c7824ea48ff6d4d42dfae0849aec8a85acd90bd9
Source-Link: https://github.com/googleapis/synthtool/commit/ba9918cd22874245b55734f57470c719b577e591
Source-Link: https://github.com/googleapis/synthtool/commit/b19b401571e77192f8dd38eab5fb2300a0de9324
Source-Link: https://github.com/googleapis/synthtool/commit/6542bd723403513626f61642fc02ddca528409aa
diff --git a/docs/dyn/serviceusage_v1.services.html b/docs/dyn/serviceusage_v1.services.html
index a3efcc7..d6dcac0 100644
--- a/docs/dyn/serviceusage_v1.services.html
+++ b/docs/dyn/serviceusage_v1.services.html
@@ -123,23 +123,23 @@
   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.
-    },
+    "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 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). # The error result of the operation in case of failure or cancellation.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-      "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.
       "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.
         },
       ],
+      "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.
+    },
+    "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}`.
+    "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.
+    },
   }</pre>
 </div>
 
@@ -161,10 +161,98 @@
     { # Response message for the `BatchGetServices` method.
     &quot;services&quot;: [ # The requested Service states.
       { # A service that is available for use by the consumer.
-        &quot;parent&quot;: &quot;A String&quot;, # The resource name of the consumer. A valid name would be: - projects/123
-        &quot;state&quot;: &quot;A String&quot;, # Whether or not the service has been enabled for use by the consumer.
         &quot;name&quot;: &quot;A String&quot;, # The resource name of the consumer and service. A valid name would be: - projects/123/services/serviceusage.googleapis.com
+        &quot;state&quot;: &quot;A String&quot;, # Whether or not the service has been enabled for use by the consumer.
         &quot;config&quot;: { # 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.
+          &quot;documentation&quot;: { # `Documentation` provides the information for describing a service. Example: documentation: summary: &gt; 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: &gt; ... - selector: google.calendar.Calendar.Put description: &gt; ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation. # Additional API documentation. Contains only the summary and the documentation URL.
+            &quot;summary&quot;: &quot;A String&quot;, # A short summary of what the service does. Can only be provided by plain text.
+            &quot;rules&quot;: [ # A list of documentation rules that apply to individual API elements. **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
+              { # A documentation rule provides information about individual API elements.
+                &quot;deprecationDescription&quot;: &quot;A String&quot;, # Deprecation description of the selected element(s). It can be provided if an element is marked as `deprecated`.
+                &quot;description&quot;: &quot;A String&quot;, # Description of the selected API(s).
+                &quot;selector&quot;: &quot;A String&quot;, # The selector is a comma-separated list of patterns. Each pattern is a qualified name of the element which may end in &quot;*&quot;, indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. &quot;foo.*&quot; is ok, but not &quot;foo.b*&quot; or &quot;foo.*.bar&quot;. A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern &quot;*&quot; is used.
+              },
+            ],
+            &quot;documentationRootUrl&quot;: &quot;A String&quot;, # The URL to the root of documentation.
+            &quot;pages&quot;: [ # The top level pages for the documentation set.
+              { # Represents a documentation page. A page can contain subpages to represent nested documentation set structure.
+                &quot;name&quot;: &quot;A String&quot;, # The name of the page. It will be used as an identity of the page to generate URI of the page, text of the link to this page in navigation, etc. The full page name (start from the root page name to this page concatenated with `.`) can be used as reference to the page in your documentation. For example: pages: - name: Tutorial content: (== include tutorial.md ==) subpages: - name: Java content: (== include tutorial_java.md ==) You can reference `Java` page using Markdown reference link syntax: `Java`.
+                &quot;subpages&quot;: [ # Subpages of this page. The order of subpages specified here will be honored in the generated docset.
+                  # Object with schema name: Page
+                ],
+                &quot;content&quot;: &quot;A String&quot;, # The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file.
+              },
+            ],
+            &quot;serviceRootUrl&quot;: &quot;A String&quot;, # 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.
+            &quot;overview&quot;: &quot;A String&quot;, # Declares a single overview page. For example: documentation: summary: ... overview: (== include overview.md ==) This is a shortcut for the following declaration (using pages style): documentation: summary: ... pages: - name: Overview content: (== include overview.md ==) Note: you cannot specify both `overview` field and `pages` field.
+          },
+          &quot;authentication&quot;: { # `Authentication` defines the authentication configuration for an API. Example for an API targeted for external use: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: &quot;*&quot; requirements: provider_id: google_calendar_auth # Auth configuration. Contains only the OAuth rules.
+            &quot;providers&quot;: [ # 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).
+                &quot;jwksUri&quot;: &quot;A String&quot;, # URL of the provider&#x27;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
+                &quot;audiences&quot;: &quot;A String&quot;, # 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: - &quot;https://[service.name]/[google.protobuf.Api.name]&quot; - &quot;https://[service.name]/&quot; 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
+                &quot;authorizationUrl&quot;: &quot;A String&quot;, # Redirect URL if JWT token is required but not present or is expired. Implement authorizationUrl of securityDefinitions in OpenAPI spec.
+                &quot;jwtLocations&quot;: [ # 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: &quot;Bearer &quot; - header: x-goog-iap-jwt-assertion - query: access_token
+                  { # Specifies a location to extract JWT from an API request.
+                    &quot;valuePrefix&quot;: &quot;A String&quot;, # The value prefix. The value format is &quot;value_prefix{token}&quot; Only applies to &quot;in&quot; header type. Must be empty for &quot;in&quot; 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 &quot;Authorization: Bearer {JWT}&quot;, value_prefix=&quot;Bearer &quot; with a space at the end.
+                    &quot;header&quot;: &quot;A String&quot;, # Specifies HTTP header name to extract JWT token.
+                    &quot;query&quot;: &quot;A String&quot;, # Specifies URL query parameter name to extract JWT token.
+                  },
+                ],
+                &quot;id&quot;: &quot;A String&quot;, # The unique identifier of the auth provider. It will be referred to by `AuthRequirement.provider_id`. Example: &quot;bookstore_auth&quot;.
+                &quot;issuer&quot;: &quot;A String&quot;, # 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
+              },
+            ],
+            &quot;rules&quot;: [ # A list of authentication rules that apply to individual API methods. **NOTE:** All service configuration rules follow &quot;last one wins&quot; 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&#x27;s an error to include more than one kind of credential in a single request. If a method doesn&#x27;t have any auth requirements, request credentials will be ignored.
+                &quot;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies. Refer to selector for syntax details.
+                &quot;requirements&quot;: [ # 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).
+                    &quot;audiences&quot;: &quot;A String&quot;, # 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 &quot;https://Service_name/API_name&quot; will be accepted. For example, if no audiences are in the setting, LibraryService API will only accept JWTs with the following audience &quot;https://library-example.googleapis.com/google.example.library.v1.LibraryService&quot;. Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com
+                    &quot;providerId&quot;: &quot;A String&quot;, # id from authentication provider. Example: provider_id: bookstore_auth
+                  },
+                ],
+                &quot;oauth&quot;: { # OAuth scopes are a way to define data and permissions on data. For example, there are scopes defined for &quot;Read-only access to Google Calendar&quot; and &quot;Access to Cloud Platform&quot;. 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. # The requirements for OAuth credentials.
+                  &quot;canonicalScopes&quot;: &quot;A String&quot;, # 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
+                },
+                &quot;allowWithoutCredential&quot;: True or False, # If true, the service accepts API keys without any other credential. This flag only applies to HTTP and gRPC requests.
+              },
+            ],
+          },
+          &quot;monitoredResources&quot;: [ # Defines the monitored resources used by this service. This is required by the Service.monitoring and Service.logging configurations.
+            { # An object that describes the schema of a MonitoredResource object using a type name and a set of labels. For example, the monitored resource descriptor for Google Compute Engine VM instances has a type of `&quot;gce_instance&quot;` and specifies the use of the labels `&quot;instance_id&quot;` and `&quot;zone&quot;` to identify particular VM instances. Different APIs can support different monitored resource types. APIs generally provide a `list` method that returns the monitored resource descriptors used by the API.
+              &quot;displayName&quot;: &quot;A String&quot;, # Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, `&quot;Google Cloud SQL Database&quot;`.
+              &quot;type&quot;: &quot;A String&quot;, # Required. The monitored resource type. For example, the type `&quot;cloudsql_database&quot;` represents databases in Google Cloud SQL.
+              &quot;description&quot;: &quot;A String&quot;, # Optional. A detailed description of the monitored resource type that might be used in documentation.
+              &quot;launchStage&quot;: &quot;A String&quot;, # Optional. The launch stage of the monitored resource definition.
+              &quot;name&quot;: &quot;A String&quot;, # Optional. The resource name of the monitored resource descriptor: `&quot;projects/{project_id}/monitoredResourceDescriptors/{type}&quot;` where {type} is the value of the `type` field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format `&quot;monitoredResourceDescriptors/{type}&quot;`.
+              &quot;labels&quot;: [ # Required. A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels `&quot;database_id&quot;` and `&quot;zone&quot;`.
+                { # A description of a label.
+                  &quot;description&quot;: &quot;A String&quot;, # A human-readable description for the label.
+                  &quot;valueType&quot;: &quot;A String&quot;, # The type of data that can be assigned to the label.
+                  &quot;key&quot;: &quot;A String&quot;, # The label key.
+                },
+              ],
+            },
+          ],
+          &quot;monitoring&quot;: { # Monitoring configuration of the service. The example below shows how to configure monitored resources and metrics for monitoring. In the example, a monitored resource and two metrics are defined. The `library.googleapis.com/book/returned_count` metric is sent to both producer and consumer projects, whereas the `library.googleapis.com/book/num_overdue` metric is only sent to the consumer project. monitored_resources: - type: library.googleapis.com/Branch display_name: &quot;Library Branch&quot; description: &quot;A branch of a library.&quot; launch_stage: GA labels: - key: resource_container description: &quot;The Cloud container (ie. project id) for the Branch.&quot; - key: location description: &quot;The location of the library branch.&quot; - key: branch_id description: &quot;The id of the branch.&quot; metrics: - name: library.googleapis.com/book/returned_count display_name: &quot;Books Returned&quot; description: &quot;The count of books that have been returned.&quot; launch_stage: GA metric_kind: DELTA value_type: INT64 unit: &quot;1&quot; labels: - key: customer_id description: &quot;The id of the customer.&quot; - name: library.googleapis.com/book/num_overdue display_name: &quot;Books Overdue&quot; description: &quot;The current number of overdue books.&quot; launch_stage: GA metric_kind: GAUGE value_type: INT64 unit: &quot;1&quot; labels: - key: customer_id description: &quot;The id of the customer.&quot; monitoring: producer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count consumer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count - library.googleapis.com/book/num_overdue # Monitoring configuration. This should not include the &#x27;producer_destinations&#x27; field.
+            &quot;consumerDestinations&quot;: [ # Monitoring configurations for sending metrics to the consumer project. There can be multiple consumer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration.
+              { # Configuration of a specific monitoring destination (the producer project or the consumer project).
+                &quot;metrics&quot;: [ # Types of the metrics to report to this monitoring destination. Each type must be defined in Service.metrics section.
+                  &quot;A String&quot;,
+                ],
+                &quot;monitoredResource&quot;: &quot;A String&quot;, # The monitored resource type. The type must be defined in Service.monitored_resources section.
+              },
+            ],
+            &quot;producerDestinations&quot;: [ # Monitoring configurations for sending metrics to the producer project. There can be multiple producer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration.
+              { # Configuration of a specific monitoring destination (the producer project or the consumer project).
+                &quot;metrics&quot;: [ # Types of the metrics to report to this monitoring destination. Each type must be defined in Service.metrics section.
+                  &quot;A String&quot;,
+                ],
+                &quot;monitoredResource&quot;: &quot;A String&quot;, # The monitored resource type. The type must be defined in Service.monitored_resources section.
+              },
+            ],
+          },
           &quot;apis&quot;: [ # 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 &quot;protocol buffer services&quot; in some contexts, such as by the &quot;service&quot; 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 &quot;APIs&quot; in other contexts, such as the name of this message itself. See https://cloud.google.com/apis/design/glossary for detailed terminology.
               &quot;mixins&quot;: [ # Included interfaces. See Mixin.
@@ -173,92 +261,40 @@
                   &quot;root&quot;: &quot;A String&quot;, # If non-empty specifies a path under which inherited HTTP paths are rooted.
                 },
               ],
-              &quot;sourceContext&quot;: { # `SourceContext` represents information about the source of a protobuf element, like the file in which it is defined. # Source context for the protocol buffer service represented by this message.
-                &quot;fileName&quot;: &quot;A String&quot;, # The path-qualified name of the .proto file that contained the associated protobuf element. For example: `&quot;google/protobuf/source_context.proto&quot;`.
-              },
-              &quot;version&quot;: &quot;A String&quot;, # A version string for this interface. If specified, must have the form `major-version.minor-version`, as in `1.10`. If the minor version is omitted, it defaults to zero. If the entire version field is empty, the major version is derived from the package name, as outlined below. If the field is not empty, the version in the package name will be verified to be consistent with what is provided here. The versioning schema uses [semantic versioning](http://semver.org) where the major version number indicates a breaking change and the minor version an additive, non-breaking change. Both version numbers are signals to users what to expect from different versions, and should be carefully chosen based on the product plan. The major version is also reflected in the package name of the interface, which must end in `v`, as in `google.feature.v1`. For major versions 0 and 1, the suffix can be omitted. Zero major versions must only be used for experimental, non-GA interfaces.
-              &quot;options&quot;: [ # Any metadata attached to the interface.
-                { # A protocol buffer option, which can be attached to a message, field, enumeration, etc.
-                  &quot;name&quot;: &quot;A String&quot;, # The option&#x27;s name. For protobuf built-in options (options defined in descriptor.proto), this is the short name. For example, `&quot;map_entry&quot;`. For custom options, it should be the fully-qualified name. For example, `&quot;google.api.http&quot;`.
-                  &quot;value&quot;: { # The option&#x27;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.
-                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-                  },
-                },
-              ],
               &quot;methods&quot;: [ # The methods of this interface, in unspecified order.
                 { # Method represents a method of an API interface.
-                  &quot;syntax&quot;: &quot;A String&quot;, # The source syntax of this method.
                   &quot;requestTypeUrl&quot;: &quot;A String&quot;, # A URL of the input message type.
+                  &quot;syntax&quot;: &quot;A String&quot;, # The source syntax of this method.
                   &quot;requestStreaming&quot;: True or False, # If true, the request is streamed.
-                  &quot;name&quot;: &quot;A String&quot;, # The simple name of this method.
                   &quot;responseStreaming&quot;: True or False, # If true, the response is streamed.
-                  &quot;responseTypeUrl&quot;: &quot;A String&quot;, # The URL of the output message type.
                   &quot;options&quot;: [ # Any metadata attached to the method.
                     { # A protocol buffer option, which can be attached to a message, field, enumeration, etc.
-                      &quot;name&quot;: &quot;A String&quot;, # The option&#x27;s name. For protobuf built-in options (options defined in descriptor.proto), this is the short name. For example, `&quot;map_entry&quot;`. For custom options, it should be the fully-qualified name. For example, `&quot;google.api.http&quot;`.
                       &quot;value&quot;: { # The option&#x27;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.
                         &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                       },
+                      &quot;name&quot;: &quot;A String&quot;, # The option&#x27;s name. For protobuf built-in options (options defined in descriptor.proto), this is the short name. For example, `&quot;map_entry&quot;`. For custom options, it should be the fully-qualified name. For example, `&quot;google.api.http&quot;`.
                     },
                   ],
+                  &quot;name&quot;: &quot;A String&quot;, # The simple name of this method.
+                  &quot;responseTypeUrl&quot;: &quot;A String&quot;, # The URL of the output message type.
                 },
               ],
-              &quot;name&quot;: &quot;A String&quot;, # The fully qualified name of this interface, including package name followed by the interface&#x27;s simple name.
+              &quot;options&quot;: [ # Any metadata attached to the interface.
+                { # A protocol buffer option, which can be attached to a message, field, enumeration, etc.
+                  &quot;value&quot;: { # The option&#x27;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.
+                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                  },
+                  &quot;name&quot;: &quot;A String&quot;, # The option&#x27;s name. For protobuf built-in options (options defined in descriptor.proto), this is the short name. For example, `&quot;map_entry&quot;`. For custom options, it should be the fully-qualified name. For example, `&quot;google.api.http&quot;`.
+                },
+              ],
               &quot;syntax&quot;: &quot;A String&quot;, # The source syntax of the service.
+              &quot;version&quot;: &quot;A String&quot;, # A version string for this interface. If specified, must have the form `major-version.minor-version`, as in `1.10`. If the minor version is omitted, it defaults to zero. If the entire version field is empty, the major version is derived from the package name, as outlined below. If the field is not empty, the version in the package name will be verified to be consistent with what is provided here. The versioning schema uses [semantic versioning](http://semver.org) where the major version number indicates a breaking change and the minor version an additive, non-breaking change. Both version numbers are signals to users what to expect from different versions, and should be carefully chosen based on the product plan. The major version is also reflected in the package name of the interface, which must end in `v`, as in `google.feature.v1`. For major versions 0 and 1, the suffix can be omitted. Zero major versions must only be used for experimental, non-GA interfaces.
+              &quot;name&quot;: &quot;A String&quot;, # The fully qualified name of this interface, including package name followed by the interface&#x27;s simple name.
+              &quot;sourceContext&quot;: { # `SourceContext` represents information about the source of a protobuf element, like the file in which it is defined. # Source context for the protocol buffer service represented by this message.
+                &quot;fileName&quot;: &quot;A String&quot;, # The path-qualified name of the .proto file that contained the associated protobuf element. For example: `&quot;google/protobuf/source_context.proto&quot;`.
+              },
             },
           ],
-          &quot;title&quot;: &quot;A String&quot;, # The product title for this service.
-          &quot;monitoring&quot;: { # Monitoring configuration of the service. The example below shows how to configure monitored resources and metrics for monitoring. In the example, a monitored resource and two metrics are defined. The `library.googleapis.com/book/returned_count` metric is sent to both producer and consumer projects, whereas the `library.googleapis.com/book/num_overdue` metric is only sent to the consumer project. monitored_resources: - type: library.googleapis.com/Branch display_name: &quot;Library Branch&quot; description: &quot;A branch of a library.&quot; launch_stage: GA labels: - key: resource_container description: &quot;The Cloud container (ie. project id) for the Branch.&quot; - key: location description: &quot;The location of the library branch.&quot; - key: branch_id description: &quot;The id of the branch.&quot; metrics: - name: library.googleapis.com/book/returned_count display_name: &quot;Books Returned&quot; description: &quot;The count of books that have been returned.&quot; launch_stage: GA metric_kind: DELTA value_type: INT64 unit: &quot;1&quot; labels: - key: customer_id description: &quot;The id of the customer.&quot; - name: library.googleapis.com/book/num_overdue display_name: &quot;Books Overdue&quot; description: &quot;The current number of overdue books.&quot; launch_stage: GA metric_kind: GAUGE value_type: INT64 unit: &quot;1&quot; labels: - key: customer_id description: &quot;The id of the customer.&quot; monitoring: producer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count consumer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count - library.googleapis.com/book/num_overdue # Monitoring configuration. This should not include the &#x27;producer_destinations&#x27; field.
-            &quot;consumerDestinations&quot;: [ # Monitoring configurations for sending metrics to the consumer project. There can be multiple consumer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration.
-              { # Configuration of a specific monitoring destination (the producer project or the consumer project).
-                &quot;monitoredResource&quot;: &quot;A String&quot;, # The monitored resource type. The type must be defined in Service.monitored_resources section.
-                &quot;metrics&quot;: [ # Types of the metrics to report to this monitoring destination. Each type must be defined in Service.metrics section.
-                  &quot;A String&quot;,
-                ],
-              },
-            ],
-            &quot;producerDestinations&quot;: [ # Monitoring configurations for sending metrics to the producer project. There can be multiple producer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration.
-              { # Configuration of a specific monitoring destination (the producer project or the consumer project).
-                &quot;monitoredResource&quot;: &quot;A String&quot;, # The monitored resource type. The type must be defined in Service.monitored_resources section.
-                &quot;metrics&quot;: [ # Types of the metrics to report to this monitoring destination. Each type must be defined in Service.metrics section.
-                  &quot;A String&quot;,
-                ],
-              },
-            ],
-          },
-          &quot;authentication&quot;: { # `Authentication` defines the authentication configuration for an API. Example for an API targeted for external use: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: &quot;*&quot; requirements: provider_id: google_calendar_auth # Auth configuration. Contains only the OAuth rules.
-            &quot;providers&quot;: [ # 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).
-                &quot;authorizationUrl&quot;: &quot;A String&quot;, # Redirect URL if JWT token is required but not present or is expired. Implement authorizationUrl of securityDefinitions in OpenAPI spec.
-                &quot;id&quot;: &quot;A String&quot;, # The unique identifier of the auth provider. It will be referred to by `AuthRequirement.provider_id`. Example: &quot;bookstore_auth&quot;.
-                &quot;issuer&quot;: &quot;A String&quot;, # 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
-                &quot;jwksUri&quot;: &quot;A String&quot;, # URL of the provider&#x27;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
-                &quot;audiences&quot;: &quot;A String&quot;, # 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: - &quot;https://[service.name]/[google.protobuf.Api.name]&quot; - &quot;https://[service.name]/&quot; 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
-                &quot;jwtLocations&quot;: [ # 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: &quot;Bearer &quot; - header: x-goog-iap-jwt-assertion - query: access_token
-                  { # Specifies a location to extract JWT from an API request.
-                    &quot;valuePrefix&quot;: &quot;A String&quot;, # The value prefix. The value format is &quot;value_prefix{token}&quot; Only applies to &quot;in&quot; header type. Must be empty for &quot;in&quot; 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 &quot;Authorization: Bearer {JWT}&quot;, value_prefix=&quot;Bearer &quot; with a space at the end.
-                    &quot;query&quot;: &quot;A String&quot;, # Specifies URL query parameter name to extract JWT token.
-                    &quot;header&quot;: &quot;A String&quot;, # Specifies HTTP header name to extract JWT token.
-                  },
-                ],
-              },
-            ],
-            &quot;rules&quot;: [ # A list of authentication rules that apply to individual API methods. **NOTE:** All service configuration rules follow &quot;last one wins&quot; 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&#x27;s an error to include more than one kind of credential in a single request. If a method doesn&#x27;t have any auth requirements, request credentials will be ignored.
-                &quot;allowWithoutCredential&quot;: True or False, # If true, the service accepts API keys without any other credential. This flag only applies to HTTP and gRPC requests.
-                &quot;oauth&quot;: { # OAuth scopes are a way to define data and permissions on data. For example, there are scopes defined for &quot;Read-only access to Google Calendar&quot; and &quot;Access to Cloud Platform&quot;. 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. # The requirements for OAuth credentials.
-                  &quot;canonicalScopes&quot;: &quot;A String&quot;, # 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
-                },
-                &quot;requirements&quot;: [ # 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).
-                    &quot;providerId&quot;: &quot;A String&quot;, # id from authentication provider. Example: provider_id: bookstore_auth
-                    &quot;audiences&quot;: &quot;A String&quot;, # 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 &quot;https://Service_name/API_name&quot; will be accepted. For example, if no audiences are in the setting, LibraryService API will only accept JWTs with the following audience &quot;https://library-example.googleapis.com/google.example.library.v1.LibraryService&quot;. Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com
-                  },
-                ],
-                &quot;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies. Refer to selector for syntax details.
-              },
-            ],
-          },
           &quot;usage&quot;: { # Configuration controlling usage of a service. # Configuration controlling usage of this service.
             &quot;producerNotificationChannel&quot;: &quot;A String&quot;, # 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.
             &quot;requirements&quot;: [ # Requirements that must be satisfied before a consumer project can use the service. Each requirement is of the form /; for example &#x27;serviceusage.googleapis.com/billing-enabled&#x27;.
@@ -266,8 +302,8 @@
             ],
             &quot;rules&quot;: [ # A list of usage rules that apply to individual API methods. **NOTE:** All service configuration rules follow &quot;last one wins&quot; 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: &quot;*&quot; allow_unregistered_calls: true Example of a method that wants to allow unregistered calls. usage: rules: - selector: &quot;google.example.library.v1.LibraryService.CreateBook&quot; allow_unregistered_calls: true
-                &quot;allowUnregisteredCalls&quot;: True or False, # If true, the selected method allows unregistered calls, e.g. calls that don&#x27;t identify any user or application.
                 &quot;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies. Use &#x27;*&#x27; to indicate all methods in all APIs. Refer to selector for syntax details.
+                &quot;allowUnregisteredCalls&quot;: True or False, # If true, the selected method allows unregistered calls, e.g. calls that don&#x27;t identify any user or application.
                 &quot;skipServiceControl&quot;: 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.
               },
             ],
@@ -282,72 +318,36 @@
               &quot;target&quot;: &quot;A String&quot;, # 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, &quot;8.8.8.8&quot; or &quot;myservice.appspot.com&quot;.
             },
           ],
-          &quot;documentation&quot;: { # `Documentation` provides the information for describing a service. Example: documentation: summary: &gt; 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: &gt; ... - selector: google.calendar.Calendar.Put description: &gt; ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation. # Additional API documentation. Contains only the summary and the documentation URL.
-            &quot;summary&quot;: &quot;A String&quot;, # A short summary of what the service does. Can only be provided by plain text.
-            &quot;rules&quot;: [ # A list of documentation rules that apply to individual API elements. **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
-              { # A documentation rule provides information about individual API elements.
-                &quot;deprecationDescription&quot;: &quot;A String&quot;, # Deprecation description of the selected element(s). It can be provided if an element is marked as `deprecated`.
-                &quot;selector&quot;: &quot;A String&quot;, # The selector is a comma-separated list of patterns. Each pattern is a qualified name of the element which may end in &quot;*&quot;, indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. &quot;foo.*&quot; is ok, but not &quot;foo.b*&quot; or &quot;foo.*.bar&quot;. A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern &quot;*&quot; is used.
-                &quot;description&quot;: &quot;A String&quot;, # Description of the selected API(s).
-              },
-            ],
-            &quot;overview&quot;: &quot;A String&quot;, # Declares a single overview page. For example: documentation: summary: ... overview: (== include overview.md ==) This is a shortcut for the following declaration (using pages style): documentation: summary: ... pages: - name: Overview content: (== include overview.md ==) Note: you cannot specify both `overview` field and `pages` field.
-            &quot;pages&quot;: [ # The top level pages for the documentation set.
-              { # Represents a documentation page. A page can contain subpages to represent nested documentation set structure.
-                &quot;subpages&quot;: [ # Subpages of this page. The order of subpages specified here will be honored in the generated docset.
-                  # Object with schema name: Page
-                ],
-                &quot;name&quot;: &quot;A String&quot;, # The name of the page. It will be used as an identity of the page to generate URI of the page, text of the link to this page in navigation, etc. The full page name (start from the root page name to this page concatenated with `.`) can be used as reference to the page in your documentation. For example: pages: - name: Tutorial content: (== include tutorial.md ==) subpages: - name: Java content: (== include tutorial_java.md ==) You can reference `Java` page using Markdown reference link syntax: `Java`.
-                &quot;content&quot;: &quot;A String&quot;, # The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file.
-              },
-            ],
-            &quot;documentationRootUrl&quot;: &quot;A String&quot;, # The URL to the root of documentation.
-            &quot;serviceRootUrl&quot;: &quot;A String&quot;, # 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.
-          },
-          &quot;monitoredResources&quot;: [ # Defines the monitored resources used by this service. This is required by the Service.monitoring and Service.logging configurations.
-            { # An object that describes the schema of a MonitoredResource object using a type name and a set of labels. For example, the monitored resource descriptor for Google Compute Engine VM instances has a type of `&quot;gce_instance&quot;` and specifies the use of the labels `&quot;instance_id&quot;` and `&quot;zone&quot;` to identify particular VM instances. Different APIs can support different monitored resource types. APIs generally provide a `list` method that returns the monitored resource descriptors used by the API.
-              &quot;launchStage&quot;: &quot;A String&quot;, # Optional. The launch stage of the monitored resource definition.
-              &quot;displayName&quot;: &quot;A String&quot;, # Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, `&quot;Google Cloud SQL Database&quot;`.
-              &quot;labels&quot;: [ # Required. A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels `&quot;database_id&quot;` and `&quot;zone&quot;`.
-                { # A description of a label.
-                  &quot;key&quot;: &quot;A String&quot;, # The label key.
-                  &quot;valueType&quot;: &quot;A String&quot;, # The type of data that can be assigned to the label.
-                  &quot;description&quot;: &quot;A String&quot;, # A human-readable description for the label.
-                },
-              ],
-              &quot;description&quot;: &quot;A String&quot;, # Optional. A detailed description of the monitored resource type that might be used in documentation.
-              &quot;name&quot;: &quot;A String&quot;, # Optional. The resource name of the monitored resource descriptor: `&quot;projects/{project_id}/monitoredResourceDescriptors/{type}&quot;` where {type} is the value of the `type` field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format `&quot;monitoredResourceDescriptors/{type}&quot;`.
-              &quot;type&quot;: &quot;A String&quot;, # Required. The monitored resource type. For example, the type `&quot;cloudsql_database&quot;` represents databases in Google Cloud SQL.
-            },
-          ],
+          &quot;title&quot;: &quot;A String&quot;, # The product title for this service.
+          &quot;name&quot;: &quot;A String&quot;, # The DNS address at which this service is available. An example DNS address would be: `calendar.googleapis.com`.
           &quot;quota&quot;: { # Quota configuration helps to achieve fairness and budgeting in service 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: &quot;1/min/{project}&quot; # 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: &quot;*&quot; 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 # Quota configuration.
             &quot;metricRules&quot;: [ # 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&#x27;s configured quota behaviors to apply to the method call.
-                &quot;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies. Refer to selector for syntax details.
                 &quot;metricCosts&quot;: { # 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.
                   &quot;a_key&quot;: &quot;A String&quot;,
                 },
+                &quot;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies. Refer to selector for syntax details.
               },
             ],
             &quot;limits&quot;: [ # 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`.
-                &quot;unit&quot;: &quot;A String&quot;, # 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: * &quot;1/min/{project}&quot; for quota per minute per project. Note: the order of unit components is insignificant. The &quot;1&quot; at the beginning is required to follow the metric unit syntax.
-                &quot;duration&quot;: &quot;A String&quot;, # Duration of this limit in textual notation. Must be &quot;100s&quot; or &quot;1d&quot;. Used by group-based quotas only.
                 &quot;description&quot;: &quot;A String&quot;, # 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&#x27;s display name (see: `display_name`).
                 &quot;name&quot;: &quot;A String&quot;, # 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 &#x27;-&#x27;. The maximum length of the limit name is 64 characters.
-                &quot;defaultLimit&quot;: &quot;A String&quot;, # 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.
+                &quot;unit&quot;: &quot;A String&quot;, # 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: * &quot;1/min/{project}&quot; for quota per minute per project. Note: the order of unit components is insignificant. The &quot;1&quot; at the beginning is required to follow the metric unit syntax.
                 &quot;freeTier&quot;: &quot;A String&quot;, # 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 &quot;1d&quot;, 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.
+                &quot;duration&quot;: &quot;A String&quot;, # Duration of this limit in textual notation. Must be &quot;100s&quot; or &quot;1d&quot;. Used by group-based quotas only.
                 &quot;metric&quot;: &quot;A String&quot;, # 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.
+                &quot;displayName&quot;: &quot;A String&quot;, # 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.
+                &quot;maxLimit&quot;: &quot;A String&quot;, # 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.
+                &quot;defaultLimit&quot;: &quot;A String&quot;, # 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.
                 &quot;values&quot;: { # 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.
                   &quot;a_key&quot;: &quot;A String&quot;,
                 },
-                &quot;maxLimit&quot;: &quot;A String&quot;, # 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.
-                &quot;displayName&quot;: &quot;A String&quot;, # 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.
               },
             ],
           },
-          &quot;name&quot;: &quot;A String&quot;, # The DNS address at which this service is available. An example DNS address would be: `calendar.googleapis.com`.
         },
+        &quot;parent&quot;: &quot;A String&quot;, # The resource name of the consumer. A valid name would be: - projects/123
       },
     ],
   }</pre>
@@ -381,23 +381,23 @@
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    &quot;response&quot;: { # 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`.
-      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-    },
-    &quot;metadata&quot;: { # 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.
-      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-    },
+    &quot;name&quot;: &quot;A String&quot;, # 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}`.
     &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). 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). # The error result of the operation in case of failure or cancellation.
       &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
-      &quot;message&quot;: &quot;A String&quot;, # 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.
       &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
         {
           &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
         },
       ],
+      &quot;message&quot;: &quot;A String&quot;, # 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.
+    },
+    &quot;metadata&quot;: { # 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.
+      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
     },
     &quot;done&quot;: 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.
-    &quot;name&quot;: &quot;A String&quot;, # 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}`.
+    &quot;response&quot;: { # 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`.
+      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+    },
   }</pre>
 </div>
 
@@ -422,23 +422,23 @@
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    &quot;response&quot;: { # 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`.
-      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-    },
-    &quot;metadata&quot;: { # 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.
-      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-    },
+    &quot;name&quot;: &quot;A String&quot;, # 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}`.
     &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). 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). # The error result of the operation in case of failure or cancellation.
       &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
-      &quot;message&quot;: &quot;A String&quot;, # 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.
       &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
         {
           &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
         },
       ],
+      &quot;message&quot;: &quot;A String&quot;, # 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.
+    },
+    &quot;metadata&quot;: { # 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.
+      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
     },
     &quot;done&quot;: 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.
-    &quot;name&quot;: &quot;A String&quot;, # 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}`.
+    &quot;response&quot;: { # 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`.
+      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+    },
   }</pre>
 </div>
 
@@ -457,10 +457,98 @@
   An object of the form:
 
     { # A service that is available for use by the consumer.
-    &quot;parent&quot;: &quot;A String&quot;, # The resource name of the consumer. A valid name would be: - projects/123
-    &quot;state&quot;: &quot;A String&quot;, # Whether or not the service has been enabled for use by the consumer.
     &quot;name&quot;: &quot;A String&quot;, # The resource name of the consumer and service. A valid name would be: - projects/123/services/serviceusage.googleapis.com
+    &quot;state&quot;: &quot;A String&quot;, # Whether or not the service has been enabled for use by the consumer.
     &quot;config&quot;: { # 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.
+      &quot;documentation&quot;: { # `Documentation` provides the information for describing a service. Example: documentation: summary: &gt; 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: &gt; ... - selector: google.calendar.Calendar.Put description: &gt; ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation. # Additional API documentation. Contains only the summary and the documentation URL.
+        &quot;summary&quot;: &quot;A String&quot;, # A short summary of what the service does. Can only be provided by plain text.
+        &quot;rules&quot;: [ # A list of documentation rules that apply to individual API elements. **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
+          { # A documentation rule provides information about individual API elements.
+            &quot;deprecationDescription&quot;: &quot;A String&quot;, # Deprecation description of the selected element(s). It can be provided if an element is marked as `deprecated`.
+            &quot;description&quot;: &quot;A String&quot;, # Description of the selected API(s).
+            &quot;selector&quot;: &quot;A String&quot;, # The selector is a comma-separated list of patterns. Each pattern is a qualified name of the element which may end in &quot;*&quot;, indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. &quot;foo.*&quot; is ok, but not &quot;foo.b*&quot; or &quot;foo.*.bar&quot;. A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern &quot;*&quot; is used.
+          },
+        ],
+        &quot;documentationRootUrl&quot;: &quot;A String&quot;, # The URL to the root of documentation.
+        &quot;pages&quot;: [ # The top level pages for the documentation set.
+          { # Represents a documentation page. A page can contain subpages to represent nested documentation set structure.
+            &quot;name&quot;: &quot;A String&quot;, # The name of the page. It will be used as an identity of the page to generate URI of the page, text of the link to this page in navigation, etc. The full page name (start from the root page name to this page concatenated with `.`) can be used as reference to the page in your documentation. For example: pages: - name: Tutorial content: (== include tutorial.md ==) subpages: - name: Java content: (== include tutorial_java.md ==) You can reference `Java` page using Markdown reference link syntax: `Java`.
+            &quot;subpages&quot;: [ # Subpages of this page. The order of subpages specified here will be honored in the generated docset.
+              # Object with schema name: Page
+            ],
+            &quot;content&quot;: &quot;A String&quot;, # The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file.
+          },
+        ],
+        &quot;serviceRootUrl&quot;: &quot;A String&quot;, # 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.
+        &quot;overview&quot;: &quot;A String&quot;, # Declares a single overview page. For example: documentation: summary: ... overview: (== include overview.md ==) This is a shortcut for the following declaration (using pages style): documentation: summary: ... pages: - name: Overview content: (== include overview.md ==) Note: you cannot specify both `overview` field and `pages` field.
+      },
+      &quot;authentication&quot;: { # `Authentication` defines the authentication configuration for an API. Example for an API targeted for external use: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: &quot;*&quot; requirements: provider_id: google_calendar_auth # Auth configuration. Contains only the OAuth rules.
+        &quot;providers&quot;: [ # 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).
+            &quot;jwksUri&quot;: &quot;A String&quot;, # URL of the provider&#x27;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
+            &quot;audiences&quot;: &quot;A String&quot;, # 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: - &quot;https://[service.name]/[google.protobuf.Api.name]&quot; - &quot;https://[service.name]/&quot; 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
+            &quot;authorizationUrl&quot;: &quot;A String&quot;, # Redirect URL if JWT token is required but not present or is expired. Implement authorizationUrl of securityDefinitions in OpenAPI spec.
+            &quot;jwtLocations&quot;: [ # 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: &quot;Bearer &quot; - header: x-goog-iap-jwt-assertion - query: access_token
+              { # Specifies a location to extract JWT from an API request.
+                &quot;valuePrefix&quot;: &quot;A String&quot;, # The value prefix. The value format is &quot;value_prefix{token}&quot; Only applies to &quot;in&quot; header type. Must be empty for &quot;in&quot; 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 &quot;Authorization: Bearer {JWT}&quot;, value_prefix=&quot;Bearer &quot; with a space at the end.
+                &quot;header&quot;: &quot;A String&quot;, # Specifies HTTP header name to extract JWT token.
+                &quot;query&quot;: &quot;A String&quot;, # Specifies URL query parameter name to extract JWT token.
+              },
+            ],
+            &quot;id&quot;: &quot;A String&quot;, # The unique identifier of the auth provider. It will be referred to by `AuthRequirement.provider_id`. Example: &quot;bookstore_auth&quot;.
+            &quot;issuer&quot;: &quot;A String&quot;, # 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
+          },
+        ],
+        &quot;rules&quot;: [ # A list of authentication rules that apply to individual API methods. **NOTE:** All service configuration rules follow &quot;last one wins&quot; 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&#x27;s an error to include more than one kind of credential in a single request. If a method doesn&#x27;t have any auth requirements, request credentials will be ignored.
+            &quot;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies. Refer to selector for syntax details.
+            &quot;requirements&quot;: [ # 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).
+                &quot;audiences&quot;: &quot;A String&quot;, # 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 &quot;https://Service_name/API_name&quot; will be accepted. For example, if no audiences are in the setting, LibraryService API will only accept JWTs with the following audience &quot;https://library-example.googleapis.com/google.example.library.v1.LibraryService&quot;. Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com
+                &quot;providerId&quot;: &quot;A String&quot;, # id from authentication provider. Example: provider_id: bookstore_auth
+              },
+            ],
+            &quot;oauth&quot;: { # OAuth scopes are a way to define data and permissions on data. For example, there are scopes defined for &quot;Read-only access to Google Calendar&quot; and &quot;Access to Cloud Platform&quot;. 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. # The requirements for OAuth credentials.
+              &quot;canonicalScopes&quot;: &quot;A String&quot;, # 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
+            },
+            &quot;allowWithoutCredential&quot;: True or False, # If true, the service accepts API keys without any other credential. This flag only applies to HTTP and gRPC requests.
+          },
+        ],
+      },
+      &quot;monitoredResources&quot;: [ # Defines the monitored resources used by this service. This is required by the Service.monitoring and Service.logging configurations.
+        { # An object that describes the schema of a MonitoredResource object using a type name and a set of labels. For example, the monitored resource descriptor for Google Compute Engine VM instances has a type of `&quot;gce_instance&quot;` and specifies the use of the labels `&quot;instance_id&quot;` and `&quot;zone&quot;` to identify particular VM instances. Different APIs can support different monitored resource types. APIs generally provide a `list` method that returns the monitored resource descriptors used by the API.
+          &quot;displayName&quot;: &quot;A String&quot;, # Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, `&quot;Google Cloud SQL Database&quot;`.
+          &quot;type&quot;: &quot;A String&quot;, # Required. The monitored resource type. For example, the type `&quot;cloudsql_database&quot;` represents databases in Google Cloud SQL.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. A detailed description of the monitored resource type that might be used in documentation.
+          &quot;launchStage&quot;: &quot;A String&quot;, # Optional. The launch stage of the monitored resource definition.
+          &quot;name&quot;: &quot;A String&quot;, # Optional. The resource name of the monitored resource descriptor: `&quot;projects/{project_id}/monitoredResourceDescriptors/{type}&quot;` where {type} is the value of the `type` field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format `&quot;monitoredResourceDescriptors/{type}&quot;`.
+          &quot;labels&quot;: [ # Required. A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels `&quot;database_id&quot;` and `&quot;zone&quot;`.
+            { # A description of a label.
+              &quot;description&quot;: &quot;A String&quot;, # A human-readable description for the label.
+              &quot;valueType&quot;: &quot;A String&quot;, # The type of data that can be assigned to the label.
+              &quot;key&quot;: &quot;A String&quot;, # The label key.
+            },
+          ],
+        },
+      ],
+      &quot;monitoring&quot;: { # Monitoring configuration of the service. The example below shows how to configure monitored resources and metrics for monitoring. In the example, a monitored resource and two metrics are defined. The `library.googleapis.com/book/returned_count` metric is sent to both producer and consumer projects, whereas the `library.googleapis.com/book/num_overdue` metric is only sent to the consumer project. monitored_resources: - type: library.googleapis.com/Branch display_name: &quot;Library Branch&quot; description: &quot;A branch of a library.&quot; launch_stage: GA labels: - key: resource_container description: &quot;The Cloud container (ie. project id) for the Branch.&quot; - key: location description: &quot;The location of the library branch.&quot; - key: branch_id description: &quot;The id of the branch.&quot; metrics: - name: library.googleapis.com/book/returned_count display_name: &quot;Books Returned&quot; description: &quot;The count of books that have been returned.&quot; launch_stage: GA metric_kind: DELTA value_type: INT64 unit: &quot;1&quot; labels: - key: customer_id description: &quot;The id of the customer.&quot; - name: library.googleapis.com/book/num_overdue display_name: &quot;Books Overdue&quot; description: &quot;The current number of overdue books.&quot; launch_stage: GA metric_kind: GAUGE value_type: INT64 unit: &quot;1&quot; labels: - key: customer_id description: &quot;The id of the customer.&quot; monitoring: producer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count consumer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count - library.googleapis.com/book/num_overdue # Monitoring configuration. This should not include the &#x27;producer_destinations&#x27; field.
+        &quot;consumerDestinations&quot;: [ # Monitoring configurations for sending metrics to the consumer project. There can be multiple consumer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration.
+          { # Configuration of a specific monitoring destination (the producer project or the consumer project).
+            &quot;metrics&quot;: [ # Types of the metrics to report to this monitoring destination. Each type must be defined in Service.metrics section.
+              &quot;A String&quot;,
+            ],
+            &quot;monitoredResource&quot;: &quot;A String&quot;, # The monitored resource type. The type must be defined in Service.monitored_resources section.
+          },
+        ],
+        &quot;producerDestinations&quot;: [ # Monitoring configurations for sending metrics to the producer project. There can be multiple producer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration.
+          { # Configuration of a specific monitoring destination (the producer project or the consumer project).
+            &quot;metrics&quot;: [ # Types of the metrics to report to this monitoring destination. Each type must be defined in Service.metrics section.
+              &quot;A String&quot;,
+            ],
+            &quot;monitoredResource&quot;: &quot;A String&quot;, # The monitored resource type. The type must be defined in Service.monitored_resources section.
+          },
+        ],
+      },
       &quot;apis&quot;: [ # 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 &quot;protocol buffer services&quot; in some contexts, such as by the &quot;service&quot; 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 &quot;APIs&quot; in other contexts, such as the name of this message itself. See https://cloud.google.com/apis/design/glossary for detailed terminology.
           &quot;mixins&quot;: [ # Included interfaces. See Mixin.
@@ -469,92 +557,40 @@
               &quot;root&quot;: &quot;A String&quot;, # If non-empty specifies a path under which inherited HTTP paths are rooted.
             },
           ],
-          &quot;sourceContext&quot;: { # `SourceContext` represents information about the source of a protobuf element, like the file in which it is defined. # Source context for the protocol buffer service represented by this message.
-            &quot;fileName&quot;: &quot;A String&quot;, # The path-qualified name of the .proto file that contained the associated protobuf element. For example: `&quot;google/protobuf/source_context.proto&quot;`.
-          },
-          &quot;version&quot;: &quot;A String&quot;, # A version string for this interface. If specified, must have the form `major-version.minor-version`, as in `1.10`. If the minor version is omitted, it defaults to zero. If the entire version field is empty, the major version is derived from the package name, as outlined below. If the field is not empty, the version in the package name will be verified to be consistent with what is provided here. The versioning schema uses [semantic versioning](http://semver.org) where the major version number indicates a breaking change and the minor version an additive, non-breaking change. Both version numbers are signals to users what to expect from different versions, and should be carefully chosen based on the product plan. The major version is also reflected in the package name of the interface, which must end in `v`, as in `google.feature.v1`. For major versions 0 and 1, the suffix can be omitted. Zero major versions must only be used for experimental, non-GA interfaces.
-          &quot;options&quot;: [ # Any metadata attached to the interface.
-            { # A protocol buffer option, which can be attached to a message, field, enumeration, etc.
-              &quot;name&quot;: &quot;A String&quot;, # The option&#x27;s name. For protobuf built-in options (options defined in descriptor.proto), this is the short name. For example, `&quot;map_entry&quot;`. For custom options, it should be the fully-qualified name. For example, `&quot;google.api.http&quot;`.
-              &quot;value&quot;: { # The option&#x27;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.
-                &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-              },
-            },
-          ],
           &quot;methods&quot;: [ # The methods of this interface, in unspecified order.
             { # Method represents a method of an API interface.
-              &quot;syntax&quot;: &quot;A String&quot;, # The source syntax of this method.
               &quot;requestTypeUrl&quot;: &quot;A String&quot;, # A URL of the input message type.
+              &quot;syntax&quot;: &quot;A String&quot;, # The source syntax of this method.
               &quot;requestStreaming&quot;: True or False, # If true, the request is streamed.
-              &quot;name&quot;: &quot;A String&quot;, # The simple name of this method.
               &quot;responseStreaming&quot;: True or False, # If true, the response is streamed.
-              &quot;responseTypeUrl&quot;: &quot;A String&quot;, # The URL of the output message type.
               &quot;options&quot;: [ # Any metadata attached to the method.
                 { # A protocol buffer option, which can be attached to a message, field, enumeration, etc.
-                  &quot;name&quot;: &quot;A String&quot;, # The option&#x27;s name. For protobuf built-in options (options defined in descriptor.proto), this is the short name. For example, `&quot;map_entry&quot;`. For custom options, it should be the fully-qualified name. For example, `&quot;google.api.http&quot;`.
                   &quot;value&quot;: { # The option&#x27;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.
                     &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                   },
+                  &quot;name&quot;: &quot;A String&quot;, # The option&#x27;s name. For protobuf built-in options (options defined in descriptor.proto), this is the short name. For example, `&quot;map_entry&quot;`. For custom options, it should be the fully-qualified name. For example, `&quot;google.api.http&quot;`.
                 },
               ],
+              &quot;name&quot;: &quot;A String&quot;, # The simple name of this method.
+              &quot;responseTypeUrl&quot;: &quot;A String&quot;, # The URL of the output message type.
             },
           ],
-          &quot;name&quot;: &quot;A String&quot;, # The fully qualified name of this interface, including package name followed by the interface&#x27;s simple name.
+          &quot;options&quot;: [ # Any metadata attached to the interface.
+            { # A protocol buffer option, which can be attached to a message, field, enumeration, etc.
+              &quot;value&quot;: { # The option&#x27;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.
+                &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+              },
+              &quot;name&quot;: &quot;A String&quot;, # The option&#x27;s name. For protobuf built-in options (options defined in descriptor.proto), this is the short name. For example, `&quot;map_entry&quot;`. For custom options, it should be the fully-qualified name. For example, `&quot;google.api.http&quot;`.
+            },
+          ],
           &quot;syntax&quot;: &quot;A String&quot;, # The source syntax of the service.
+          &quot;version&quot;: &quot;A String&quot;, # A version string for this interface. If specified, must have the form `major-version.minor-version`, as in `1.10`. If the minor version is omitted, it defaults to zero. If the entire version field is empty, the major version is derived from the package name, as outlined below. If the field is not empty, the version in the package name will be verified to be consistent with what is provided here. The versioning schema uses [semantic versioning](http://semver.org) where the major version number indicates a breaking change and the minor version an additive, non-breaking change. Both version numbers are signals to users what to expect from different versions, and should be carefully chosen based on the product plan. The major version is also reflected in the package name of the interface, which must end in `v`, as in `google.feature.v1`. For major versions 0 and 1, the suffix can be omitted. Zero major versions must only be used for experimental, non-GA interfaces.
+          &quot;name&quot;: &quot;A String&quot;, # The fully qualified name of this interface, including package name followed by the interface&#x27;s simple name.
+          &quot;sourceContext&quot;: { # `SourceContext` represents information about the source of a protobuf element, like the file in which it is defined. # Source context for the protocol buffer service represented by this message.
+            &quot;fileName&quot;: &quot;A String&quot;, # The path-qualified name of the .proto file that contained the associated protobuf element. For example: `&quot;google/protobuf/source_context.proto&quot;`.
+          },
         },
       ],
-      &quot;title&quot;: &quot;A String&quot;, # The product title for this service.
-      &quot;monitoring&quot;: { # Monitoring configuration of the service. The example below shows how to configure monitored resources and metrics for monitoring. In the example, a monitored resource and two metrics are defined. The `library.googleapis.com/book/returned_count` metric is sent to both producer and consumer projects, whereas the `library.googleapis.com/book/num_overdue` metric is only sent to the consumer project. monitored_resources: - type: library.googleapis.com/Branch display_name: &quot;Library Branch&quot; description: &quot;A branch of a library.&quot; launch_stage: GA labels: - key: resource_container description: &quot;The Cloud container (ie. project id) for the Branch.&quot; - key: location description: &quot;The location of the library branch.&quot; - key: branch_id description: &quot;The id of the branch.&quot; metrics: - name: library.googleapis.com/book/returned_count display_name: &quot;Books Returned&quot; description: &quot;The count of books that have been returned.&quot; launch_stage: GA metric_kind: DELTA value_type: INT64 unit: &quot;1&quot; labels: - key: customer_id description: &quot;The id of the customer.&quot; - name: library.googleapis.com/book/num_overdue display_name: &quot;Books Overdue&quot; description: &quot;The current number of overdue books.&quot; launch_stage: GA metric_kind: GAUGE value_type: INT64 unit: &quot;1&quot; labels: - key: customer_id description: &quot;The id of the customer.&quot; monitoring: producer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count consumer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count - library.googleapis.com/book/num_overdue # Monitoring configuration. This should not include the &#x27;producer_destinations&#x27; field.
-        &quot;consumerDestinations&quot;: [ # Monitoring configurations for sending metrics to the consumer project. There can be multiple consumer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration.
-          { # Configuration of a specific monitoring destination (the producer project or the consumer project).
-            &quot;monitoredResource&quot;: &quot;A String&quot;, # The monitored resource type. The type must be defined in Service.monitored_resources section.
-            &quot;metrics&quot;: [ # Types of the metrics to report to this monitoring destination. Each type must be defined in Service.metrics section.
-              &quot;A String&quot;,
-            ],
-          },
-        ],
-        &quot;producerDestinations&quot;: [ # Monitoring configurations for sending metrics to the producer project. There can be multiple producer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration.
-          { # Configuration of a specific monitoring destination (the producer project or the consumer project).
-            &quot;monitoredResource&quot;: &quot;A String&quot;, # The monitored resource type. The type must be defined in Service.monitored_resources section.
-            &quot;metrics&quot;: [ # Types of the metrics to report to this monitoring destination. Each type must be defined in Service.metrics section.
-              &quot;A String&quot;,
-            ],
-          },
-        ],
-      },
-      &quot;authentication&quot;: { # `Authentication` defines the authentication configuration for an API. Example for an API targeted for external use: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: &quot;*&quot; requirements: provider_id: google_calendar_auth # Auth configuration. Contains only the OAuth rules.
-        &quot;providers&quot;: [ # 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).
-            &quot;authorizationUrl&quot;: &quot;A String&quot;, # Redirect URL if JWT token is required but not present or is expired. Implement authorizationUrl of securityDefinitions in OpenAPI spec.
-            &quot;id&quot;: &quot;A String&quot;, # The unique identifier of the auth provider. It will be referred to by `AuthRequirement.provider_id`. Example: &quot;bookstore_auth&quot;.
-            &quot;issuer&quot;: &quot;A String&quot;, # 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
-            &quot;jwksUri&quot;: &quot;A String&quot;, # URL of the provider&#x27;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
-            &quot;audiences&quot;: &quot;A String&quot;, # 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: - &quot;https://[service.name]/[google.protobuf.Api.name]&quot; - &quot;https://[service.name]/&quot; 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
-            &quot;jwtLocations&quot;: [ # 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: &quot;Bearer &quot; - header: x-goog-iap-jwt-assertion - query: access_token
-              { # Specifies a location to extract JWT from an API request.
-                &quot;valuePrefix&quot;: &quot;A String&quot;, # The value prefix. The value format is &quot;value_prefix{token}&quot; Only applies to &quot;in&quot; header type. Must be empty for &quot;in&quot; 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 &quot;Authorization: Bearer {JWT}&quot;, value_prefix=&quot;Bearer &quot; with a space at the end.
-                &quot;query&quot;: &quot;A String&quot;, # Specifies URL query parameter name to extract JWT token.
-                &quot;header&quot;: &quot;A String&quot;, # Specifies HTTP header name to extract JWT token.
-              },
-            ],
-          },
-        ],
-        &quot;rules&quot;: [ # A list of authentication rules that apply to individual API methods. **NOTE:** All service configuration rules follow &quot;last one wins&quot; 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&#x27;s an error to include more than one kind of credential in a single request. If a method doesn&#x27;t have any auth requirements, request credentials will be ignored.
-            &quot;allowWithoutCredential&quot;: True or False, # If true, the service accepts API keys without any other credential. This flag only applies to HTTP and gRPC requests.
-            &quot;oauth&quot;: { # OAuth scopes are a way to define data and permissions on data. For example, there are scopes defined for &quot;Read-only access to Google Calendar&quot; and &quot;Access to Cloud Platform&quot;. 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. # The requirements for OAuth credentials.
-              &quot;canonicalScopes&quot;: &quot;A String&quot;, # 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
-            },
-            &quot;requirements&quot;: [ # 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).
-                &quot;providerId&quot;: &quot;A String&quot;, # id from authentication provider. Example: provider_id: bookstore_auth
-                &quot;audiences&quot;: &quot;A String&quot;, # 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 &quot;https://Service_name/API_name&quot; will be accepted. For example, if no audiences are in the setting, LibraryService API will only accept JWTs with the following audience &quot;https://library-example.googleapis.com/google.example.library.v1.LibraryService&quot;. Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com
-              },
-            ],
-            &quot;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies. Refer to selector for syntax details.
-          },
-        ],
-      },
       &quot;usage&quot;: { # Configuration controlling usage of a service. # Configuration controlling usage of this service.
         &quot;producerNotificationChannel&quot;: &quot;A String&quot;, # 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.
         &quot;requirements&quot;: [ # Requirements that must be satisfied before a consumer project can use the service. Each requirement is of the form /; for example &#x27;serviceusage.googleapis.com/billing-enabled&#x27;.
@@ -562,8 +598,8 @@
         ],
         &quot;rules&quot;: [ # A list of usage rules that apply to individual API methods. **NOTE:** All service configuration rules follow &quot;last one wins&quot; 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: &quot;*&quot; allow_unregistered_calls: true Example of a method that wants to allow unregistered calls. usage: rules: - selector: &quot;google.example.library.v1.LibraryService.CreateBook&quot; allow_unregistered_calls: true
-            &quot;allowUnregisteredCalls&quot;: True or False, # If true, the selected method allows unregistered calls, e.g. calls that don&#x27;t identify any user or application.
             &quot;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies. Use &#x27;*&#x27; to indicate all methods in all APIs. Refer to selector for syntax details.
+            &quot;allowUnregisteredCalls&quot;: True or False, # If true, the selected method allows unregistered calls, e.g. calls that don&#x27;t identify any user or application.
             &quot;skipServiceControl&quot;: 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.
           },
         ],
@@ -578,72 +614,36 @@
           &quot;target&quot;: &quot;A String&quot;, # 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, &quot;8.8.8.8&quot; or &quot;myservice.appspot.com&quot;.
         },
       ],
-      &quot;documentation&quot;: { # `Documentation` provides the information for describing a service. Example: documentation: summary: &gt; 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: &gt; ... - selector: google.calendar.Calendar.Put description: &gt; ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation. # Additional API documentation. Contains only the summary and the documentation URL.
-        &quot;summary&quot;: &quot;A String&quot;, # A short summary of what the service does. Can only be provided by plain text.
-        &quot;rules&quot;: [ # A list of documentation rules that apply to individual API elements. **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
-          { # A documentation rule provides information about individual API elements.
-            &quot;deprecationDescription&quot;: &quot;A String&quot;, # Deprecation description of the selected element(s). It can be provided if an element is marked as `deprecated`.
-            &quot;selector&quot;: &quot;A String&quot;, # The selector is a comma-separated list of patterns. Each pattern is a qualified name of the element which may end in &quot;*&quot;, indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. &quot;foo.*&quot; is ok, but not &quot;foo.b*&quot; or &quot;foo.*.bar&quot;. A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern &quot;*&quot; is used.
-            &quot;description&quot;: &quot;A String&quot;, # Description of the selected API(s).
-          },
-        ],
-        &quot;overview&quot;: &quot;A String&quot;, # Declares a single overview page. For example: documentation: summary: ... overview: (== include overview.md ==) This is a shortcut for the following declaration (using pages style): documentation: summary: ... pages: - name: Overview content: (== include overview.md ==) Note: you cannot specify both `overview` field and `pages` field.
-        &quot;pages&quot;: [ # The top level pages for the documentation set.
-          { # Represents a documentation page. A page can contain subpages to represent nested documentation set structure.
-            &quot;subpages&quot;: [ # Subpages of this page. The order of subpages specified here will be honored in the generated docset.
-              # Object with schema name: Page
-            ],
-            &quot;name&quot;: &quot;A String&quot;, # The name of the page. It will be used as an identity of the page to generate URI of the page, text of the link to this page in navigation, etc. The full page name (start from the root page name to this page concatenated with `.`) can be used as reference to the page in your documentation. For example: pages: - name: Tutorial content: (== include tutorial.md ==) subpages: - name: Java content: (== include tutorial_java.md ==) You can reference `Java` page using Markdown reference link syntax: `Java`.
-            &quot;content&quot;: &quot;A String&quot;, # The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file.
-          },
-        ],
-        &quot;documentationRootUrl&quot;: &quot;A String&quot;, # The URL to the root of documentation.
-        &quot;serviceRootUrl&quot;: &quot;A String&quot;, # 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.
-      },
-      &quot;monitoredResources&quot;: [ # Defines the monitored resources used by this service. This is required by the Service.monitoring and Service.logging configurations.
-        { # An object that describes the schema of a MonitoredResource object using a type name and a set of labels. For example, the monitored resource descriptor for Google Compute Engine VM instances has a type of `&quot;gce_instance&quot;` and specifies the use of the labels `&quot;instance_id&quot;` and `&quot;zone&quot;` to identify particular VM instances. Different APIs can support different monitored resource types. APIs generally provide a `list` method that returns the monitored resource descriptors used by the API.
-          &quot;launchStage&quot;: &quot;A String&quot;, # Optional. The launch stage of the monitored resource definition.
-          &quot;displayName&quot;: &quot;A String&quot;, # Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, `&quot;Google Cloud SQL Database&quot;`.
-          &quot;labels&quot;: [ # Required. A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels `&quot;database_id&quot;` and `&quot;zone&quot;`.
-            { # A description of a label.
-              &quot;key&quot;: &quot;A String&quot;, # The label key.
-              &quot;valueType&quot;: &quot;A String&quot;, # The type of data that can be assigned to the label.
-              &quot;description&quot;: &quot;A String&quot;, # A human-readable description for the label.
-            },
-          ],
-          &quot;description&quot;: &quot;A String&quot;, # Optional. A detailed description of the monitored resource type that might be used in documentation.
-          &quot;name&quot;: &quot;A String&quot;, # Optional. The resource name of the monitored resource descriptor: `&quot;projects/{project_id}/monitoredResourceDescriptors/{type}&quot;` where {type} is the value of the `type` field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format `&quot;monitoredResourceDescriptors/{type}&quot;`.
-          &quot;type&quot;: &quot;A String&quot;, # Required. The monitored resource type. For example, the type `&quot;cloudsql_database&quot;` represents databases in Google Cloud SQL.
-        },
-      ],
+      &quot;title&quot;: &quot;A String&quot;, # The product title for this service.
+      &quot;name&quot;: &quot;A String&quot;, # The DNS address at which this service is available. An example DNS address would be: `calendar.googleapis.com`.
       &quot;quota&quot;: { # Quota configuration helps to achieve fairness and budgeting in service 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: &quot;1/min/{project}&quot; # 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: &quot;*&quot; 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 # Quota configuration.
         &quot;metricRules&quot;: [ # 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&#x27;s configured quota behaviors to apply to the method call.
-            &quot;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies. Refer to selector for syntax details.
             &quot;metricCosts&quot;: { # 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.
               &quot;a_key&quot;: &quot;A String&quot;,
             },
+            &quot;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies. Refer to selector for syntax details.
           },
         ],
         &quot;limits&quot;: [ # 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`.
-            &quot;unit&quot;: &quot;A String&quot;, # 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: * &quot;1/min/{project}&quot; for quota per minute per project. Note: the order of unit components is insignificant. The &quot;1&quot; at the beginning is required to follow the metric unit syntax.
-            &quot;duration&quot;: &quot;A String&quot;, # Duration of this limit in textual notation. Must be &quot;100s&quot; or &quot;1d&quot;. Used by group-based quotas only.
             &quot;description&quot;: &quot;A String&quot;, # 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&#x27;s display name (see: `display_name`).
             &quot;name&quot;: &quot;A String&quot;, # 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 &#x27;-&#x27;. The maximum length of the limit name is 64 characters.
-            &quot;defaultLimit&quot;: &quot;A String&quot;, # 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.
+            &quot;unit&quot;: &quot;A String&quot;, # 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: * &quot;1/min/{project}&quot; for quota per minute per project. Note: the order of unit components is insignificant. The &quot;1&quot; at the beginning is required to follow the metric unit syntax.
             &quot;freeTier&quot;: &quot;A String&quot;, # 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 &quot;1d&quot;, 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.
+            &quot;duration&quot;: &quot;A String&quot;, # Duration of this limit in textual notation. Must be &quot;100s&quot; or &quot;1d&quot;. Used by group-based quotas only.
             &quot;metric&quot;: &quot;A String&quot;, # 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.
+            &quot;displayName&quot;: &quot;A String&quot;, # 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.
+            &quot;maxLimit&quot;: &quot;A String&quot;, # 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.
+            &quot;defaultLimit&quot;: &quot;A String&quot;, # 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.
             &quot;values&quot;: { # 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.
               &quot;a_key&quot;: &quot;A String&quot;,
             },
-            &quot;maxLimit&quot;: &quot;A String&quot;, # 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.
-            &quot;displayName&quot;: &quot;A String&quot;, # 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.
           },
         ],
       },
-      &quot;name&quot;: &quot;A String&quot;, # The DNS address at which this service is available. An example DNS address would be: `calendar.googleapis.com`.
     },
+    &quot;parent&quot;: &quot;A String&quot;, # The resource name of the consumer. A valid name would be: - projects/123
   }</pre>
 </div>
 
@@ -665,13 +665,100 @@
   An object of the form:
 
     { # Response message for the `ListServices` method.
-    &quot;nextPageToken&quot;: &quot;A String&quot;, # Token that can be passed to `ListServices` to resume a paginated query.
     &quot;services&quot;: [ # The available services for the requested project.
       { # A service that is available for use by the consumer.
-        &quot;parent&quot;: &quot;A String&quot;, # The resource name of the consumer. A valid name would be: - projects/123
-        &quot;state&quot;: &quot;A String&quot;, # Whether or not the service has been enabled for use by the consumer.
         &quot;name&quot;: &quot;A String&quot;, # The resource name of the consumer and service. A valid name would be: - projects/123/services/serviceusage.googleapis.com
+        &quot;state&quot;: &quot;A String&quot;, # Whether or not the service has been enabled for use by the consumer.
         &quot;config&quot;: { # 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.
+          &quot;documentation&quot;: { # `Documentation` provides the information for describing a service. Example: documentation: summary: &gt; 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: &gt; ... - selector: google.calendar.Calendar.Put description: &gt; ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation. # Additional API documentation. Contains only the summary and the documentation URL.
+            &quot;summary&quot;: &quot;A String&quot;, # A short summary of what the service does. Can only be provided by plain text.
+            &quot;rules&quot;: [ # A list of documentation rules that apply to individual API elements. **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
+              { # A documentation rule provides information about individual API elements.
+                &quot;deprecationDescription&quot;: &quot;A String&quot;, # Deprecation description of the selected element(s). It can be provided if an element is marked as `deprecated`.
+                &quot;description&quot;: &quot;A String&quot;, # Description of the selected API(s).
+                &quot;selector&quot;: &quot;A String&quot;, # The selector is a comma-separated list of patterns. Each pattern is a qualified name of the element which may end in &quot;*&quot;, indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. &quot;foo.*&quot; is ok, but not &quot;foo.b*&quot; or &quot;foo.*.bar&quot;. A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern &quot;*&quot; is used.
+              },
+            ],
+            &quot;documentationRootUrl&quot;: &quot;A String&quot;, # The URL to the root of documentation.
+            &quot;pages&quot;: [ # The top level pages for the documentation set.
+              { # Represents a documentation page. A page can contain subpages to represent nested documentation set structure.
+                &quot;name&quot;: &quot;A String&quot;, # The name of the page. It will be used as an identity of the page to generate URI of the page, text of the link to this page in navigation, etc. The full page name (start from the root page name to this page concatenated with `.`) can be used as reference to the page in your documentation. For example: pages: - name: Tutorial content: (== include tutorial.md ==) subpages: - name: Java content: (== include tutorial_java.md ==) You can reference `Java` page using Markdown reference link syntax: `Java`.
+                &quot;subpages&quot;: [ # Subpages of this page. The order of subpages specified here will be honored in the generated docset.
+                  # Object with schema name: Page
+                ],
+                &quot;content&quot;: &quot;A String&quot;, # The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file.
+              },
+            ],
+            &quot;serviceRootUrl&quot;: &quot;A String&quot;, # 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.
+            &quot;overview&quot;: &quot;A String&quot;, # Declares a single overview page. For example: documentation: summary: ... overview: (== include overview.md ==) This is a shortcut for the following declaration (using pages style): documentation: summary: ... pages: - name: Overview content: (== include overview.md ==) Note: you cannot specify both `overview` field and `pages` field.
+          },
+          &quot;authentication&quot;: { # `Authentication` defines the authentication configuration for an API. Example for an API targeted for external use: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: &quot;*&quot; requirements: provider_id: google_calendar_auth # Auth configuration. Contains only the OAuth rules.
+            &quot;providers&quot;: [ # 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).
+                &quot;jwksUri&quot;: &quot;A String&quot;, # URL of the provider&#x27;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
+                &quot;audiences&quot;: &quot;A String&quot;, # 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: - &quot;https://[service.name]/[google.protobuf.Api.name]&quot; - &quot;https://[service.name]/&quot; 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
+                &quot;authorizationUrl&quot;: &quot;A String&quot;, # Redirect URL if JWT token is required but not present or is expired. Implement authorizationUrl of securityDefinitions in OpenAPI spec.
+                &quot;jwtLocations&quot;: [ # 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: &quot;Bearer &quot; - header: x-goog-iap-jwt-assertion - query: access_token
+                  { # Specifies a location to extract JWT from an API request.
+                    &quot;valuePrefix&quot;: &quot;A String&quot;, # The value prefix. The value format is &quot;value_prefix{token}&quot; Only applies to &quot;in&quot; header type. Must be empty for &quot;in&quot; 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 &quot;Authorization: Bearer {JWT}&quot;, value_prefix=&quot;Bearer &quot; with a space at the end.
+                    &quot;header&quot;: &quot;A String&quot;, # Specifies HTTP header name to extract JWT token.
+                    &quot;query&quot;: &quot;A String&quot;, # Specifies URL query parameter name to extract JWT token.
+                  },
+                ],
+                &quot;id&quot;: &quot;A String&quot;, # The unique identifier of the auth provider. It will be referred to by `AuthRequirement.provider_id`. Example: &quot;bookstore_auth&quot;.
+                &quot;issuer&quot;: &quot;A String&quot;, # 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
+              },
+            ],
+            &quot;rules&quot;: [ # A list of authentication rules that apply to individual API methods. **NOTE:** All service configuration rules follow &quot;last one wins&quot; 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&#x27;s an error to include more than one kind of credential in a single request. If a method doesn&#x27;t have any auth requirements, request credentials will be ignored.
+                &quot;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies. Refer to selector for syntax details.
+                &quot;requirements&quot;: [ # 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).
+                    &quot;audiences&quot;: &quot;A String&quot;, # 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 &quot;https://Service_name/API_name&quot; will be accepted. For example, if no audiences are in the setting, LibraryService API will only accept JWTs with the following audience &quot;https://library-example.googleapis.com/google.example.library.v1.LibraryService&quot;. Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com
+                    &quot;providerId&quot;: &quot;A String&quot;, # id from authentication provider. Example: provider_id: bookstore_auth
+                  },
+                ],
+                &quot;oauth&quot;: { # OAuth scopes are a way to define data and permissions on data. For example, there are scopes defined for &quot;Read-only access to Google Calendar&quot; and &quot;Access to Cloud Platform&quot;. 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. # The requirements for OAuth credentials.
+                  &quot;canonicalScopes&quot;: &quot;A String&quot;, # 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
+                },
+                &quot;allowWithoutCredential&quot;: True or False, # If true, the service accepts API keys without any other credential. This flag only applies to HTTP and gRPC requests.
+              },
+            ],
+          },
+          &quot;monitoredResources&quot;: [ # Defines the monitored resources used by this service. This is required by the Service.monitoring and Service.logging configurations.
+            { # An object that describes the schema of a MonitoredResource object using a type name and a set of labels. For example, the monitored resource descriptor for Google Compute Engine VM instances has a type of `&quot;gce_instance&quot;` and specifies the use of the labels `&quot;instance_id&quot;` and `&quot;zone&quot;` to identify particular VM instances. Different APIs can support different monitored resource types. APIs generally provide a `list` method that returns the monitored resource descriptors used by the API.
+              &quot;displayName&quot;: &quot;A String&quot;, # Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, `&quot;Google Cloud SQL Database&quot;`.
+              &quot;type&quot;: &quot;A String&quot;, # Required. The monitored resource type. For example, the type `&quot;cloudsql_database&quot;` represents databases in Google Cloud SQL.
+              &quot;description&quot;: &quot;A String&quot;, # Optional. A detailed description of the monitored resource type that might be used in documentation.
+              &quot;launchStage&quot;: &quot;A String&quot;, # Optional. The launch stage of the monitored resource definition.
+              &quot;name&quot;: &quot;A String&quot;, # Optional. The resource name of the monitored resource descriptor: `&quot;projects/{project_id}/monitoredResourceDescriptors/{type}&quot;` where {type} is the value of the `type` field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format `&quot;monitoredResourceDescriptors/{type}&quot;`.
+              &quot;labels&quot;: [ # Required. A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels `&quot;database_id&quot;` and `&quot;zone&quot;`.
+                { # A description of a label.
+                  &quot;description&quot;: &quot;A String&quot;, # A human-readable description for the label.
+                  &quot;valueType&quot;: &quot;A String&quot;, # The type of data that can be assigned to the label.
+                  &quot;key&quot;: &quot;A String&quot;, # The label key.
+                },
+              ],
+            },
+          ],
+          &quot;monitoring&quot;: { # Monitoring configuration of the service. The example below shows how to configure monitored resources and metrics for monitoring. In the example, a monitored resource and two metrics are defined. The `library.googleapis.com/book/returned_count` metric is sent to both producer and consumer projects, whereas the `library.googleapis.com/book/num_overdue` metric is only sent to the consumer project. monitored_resources: - type: library.googleapis.com/Branch display_name: &quot;Library Branch&quot; description: &quot;A branch of a library.&quot; launch_stage: GA labels: - key: resource_container description: &quot;The Cloud container (ie. project id) for the Branch.&quot; - key: location description: &quot;The location of the library branch.&quot; - key: branch_id description: &quot;The id of the branch.&quot; metrics: - name: library.googleapis.com/book/returned_count display_name: &quot;Books Returned&quot; description: &quot;The count of books that have been returned.&quot; launch_stage: GA metric_kind: DELTA value_type: INT64 unit: &quot;1&quot; labels: - key: customer_id description: &quot;The id of the customer.&quot; - name: library.googleapis.com/book/num_overdue display_name: &quot;Books Overdue&quot; description: &quot;The current number of overdue books.&quot; launch_stage: GA metric_kind: GAUGE value_type: INT64 unit: &quot;1&quot; labels: - key: customer_id description: &quot;The id of the customer.&quot; monitoring: producer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count consumer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count - library.googleapis.com/book/num_overdue # Monitoring configuration. This should not include the &#x27;producer_destinations&#x27; field.
+            &quot;consumerDestinations&quot;: [ # Monitoring configurations for sending metrics to the consumer project. There can be multiple consumer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration.
+              { # Configuration of a specific monitoring destination (the producer project or the consumer project).
+                &quot;metrics&quot;: [ # Types of the metrics to report to this monitoring destination. Each type must be defined in Service.metrics section.
+                  &quot;A String&quot;,
+                ],
+                &quot;monitoredResource&quot;: &quot;A String&quot;, # The monitored resource type. The type must be defined in Service.monitored_resources section.
+              },
+            ],
+            &quot;producerDestinations&quot;: [ # Monitoring configurations for sending metrics to the producer project. There can be multiple producer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration.
+              { # Configuration of a specific monitoring destination (the producer project or the consumer project).
+                &quot;metrics&quot;: [ # Types of the metrics to report to this monitoring destination. Each type must be defined in Service.metrics section.
+                  &quot;A String&quot;,
+                ],
+                &quot;monitoredResource&quot;: &quot;A String&quot;, # The monitored resource type. The type must be defined in Service.monitored_resources section.
+              },
+            ],
+          },
           &quot;apis&quot;: [ # 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 &quot;protocol buffer services&quot; in some contexts, such as by the &quot;service&quot; 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 &quot;APIs&quot; in other contexts, such as the name of this message itself. See https://cloud.google.com/apis/design/glossary for detailed terminology.
               &quot;mixins&quot;: [ # Included interfaces. See Mixin.
@@ -680,92 +767,40 @@
                   &quot;root&quot;: &quot;A String&quot;, # If non-empty specifies a path under which inherited HTTP paths are rooted.
                 },
               ],
-              &quot;sourceContext&quot;: { # `SourceContext` represents information about the source of a protobuf element, like the file in which it is defined. # Source context for the protocol buffer service represented by this message.
-                &quot;fileName&quot;: &quot;A String&quot;, # The path-qualified name of the .proto file that contained the associated protobuf element. For example: `&quot;google/protobuf/source_context.proto&quot;`.
-              },
-              &quot;version&quot;: &quot;A String&quot;, # A version string for this interface. If specified, must have the form `major-version.minor-version`, as in `1.10`. If the minor version is omitted, it defaults to zero. If the entire version field is empty, the major version is derived from the package name, as outlined below. If the field is not empty, the version in the package name will be verified to be consistent with what is provided here. The versioning schema uses [semantic versioning](http://semver.org) where the major version number indicates a breaking change and the minor version an additive, non-breaking change. Both version numbers are signals to users what to expect from different versions, and should be carefully chosen based on the product plan. The major version is also reflected in the package name of the interface, which must end in `v`, as in `google.feature.v1`. For major versions 0 and 1, the suffix can be omitted. Zero major versions must only be used for experimental, non-GA interfaces.
-              &quot;options&quot;: [ # Any metadata attached to the interface.
-                { # A protocol buffer option, which can be attached to a message, field, enumeration, etc.
-                  &quot;name&quot;: &quot;A String&quot;, # The option&#x27;s name. For protobuf built-in options (options defined in descriptor.proto), this is the short name. For example, `&quot;map_entry&quot;`. For custom options, it should be the fully-qualified name. For example, `&quot;google.api.http&quot;`.
-                  &quot;value&quot;: { # The option&#x27;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.
-                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-                  },
-                },
-              ],
               &quot;methods&quot;: [ # The methods of this interface, in unspecified order.
                 { # Method represents a method of an API interface.
-                  &quot;syntax&quot;: &quot;A String&quot;, # The source syntax of this method.
                   &quot;requestTypeUrl&quot;: &quot;A String&quot;, # A URL of the input message type.
+                  &quot;syntax&quot;: &quot;A String&quot;, # The source syntax of this method.
                   &quot;requestStreaming&quot;: True or False, # If true, the request is streamed.
-                  &quot;name&quot;: &quot;A String&quot;, # The simple name of this method.
                   &quot;responseStreaming&quot;: True or False, # If true, the response is streamed.
-                  &quot;responseTypeUrl&quot;: &quot;A String&quot;, # The URL of the output message type.
                   &quot;options&quot;: [ # Any metadata attached to the method.
                     { # A protocol buffer option, which can be attached to a message, field, enumeration, etc.
-                      &quot;name&quot;: &quot;A String&quot;, # The option&#x27;s name. For protobuf built-in options (options defined in descriptor.proto), this is the short name. For example, `&quot;map_entry&quot;`. For custom options, it should be the fully-qualified name. For example, `&quot;google.api.http&quot;`.
                       &quot;value&quot;: { # The option&#x27;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.
                         &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                       },
+                      &quot;name&quot;: &quot;A String&quot;, # The option&#x27;s name. For protobuf built-in options (options defined in descriptor.proto), this is the short name. For example, `&quot;map_entry&quot;`. For custom options, it should be the fully-qualified name. For example, `&quot;google.api.http&quot;`.
                     },
                   ],
+                  &quot;name&quot;: &quot;A String&quot;, # The simple name of this method.
+                  &quot;responseTypeUrl&quot;: &quot;A String&quot;, # The URL of the output message type.
                 },
               ],
-              &quot;name&quot;: &quot;A String&quot;, # The fully qualified name of this interface, including package name followed by the interface&#x27;s simple name.
+              &quot;options&quot;: [ # Any metadata attached to the interface.
+                { # A protocol buffer option, which can be attached to a message, field, enumeration, etc.
+                  &quot;value&quot;: { # The option&#x27;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.
+                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                  },
+                  &quot;name&quot;: &quot;A String&quot;, # The option&#x27;s name. For protobuf built-in options (options defined in descriptor.proto), this is the short name. For example, `&quot;map_entry&quot;`. For custom options, it should be the fully-qualified name. For example, `&quot;google.api.http&quot;`.
+                },
+              ],
               &quot;syntax&quot;: &quot;A String&quot;, # The source syntax of the service.
+              &quot;version&quot;: &quot;A String&quot;, # A version string for this interface. If specified, must have the form `major-version.minor-version`, as in `1.10`. If the minor version is omitted, it defaults to zero. If the entire version field is empty, the major version is derived from the package name, as outlined below. If the field is not empty, the version in the package name will be verified to be consistent with what is provided here. The versioning schema uses [semantic versioning](http://semver.org) where the major version number indicates a breaking change and the minor version an additive, non-breaking change. Both version numbers are signals to users what to expect from different versions, and should be carefully chosen based on the product plan. The major version is also reflected in the package name of the interface, which must end in `v`, as in `google.feature.v1`. For major versions 0 and 1, the suffix can be omitted. Zero major versions must only be used for experimental, non-GA interfaces.
+              &quot;name&quot;: &quot;A String&quot;, # The fully qualified name of this interface, including package name followed by the interface&#x27;s simple name.
+              &quot;sourceContext&quot;: { # `SourceContext` represents information about the source of a protobuf element, like the file in which it is defined. # Source context for the protocol buffer service represented by this message.
+                &quot;fileName&quot;: &quot;A String&quot;, # The path-qualified name of the .proto file that contained the associated protobuf element. For example: `&quot;google/protobuf/source_context.proto&quot;`.
+              },
             },
           ],
-          &quot;title&quot;: &quot;A String&quot;, # The product title for this service.
-          &quot;monitoring&quot;: { # Monitoring configuration of the service. The example below shows how to configure monitored resources and metrics for monitoring. In the example, a monitored resource and two metrics are defined. The `library.googleapis.com/book/returned_count` metric is sent to both producer and consumer projects, whereas the `library.googleapis.com/book/num_overdue` metric is only sent to the consumer project. monitored_resources: - type: library.googleapis.com/Branch display_name: &quot;Library Branch&quot; description: &quot;A branch of a library.&quot; launch_stage: GA labels: - key: resource_container description: &quot;The Cloud container (ie. project id) for the Branch.&quot; - key: location description: &quot;The location of the library branch.&quot; - key: branch_id description: &quot;The id of the branch.&quot; metrics: - name: library.googleapis.com/book/returned_count display_name: &quot;Books Returned&quot; description: &quot;The count of books that have been returned.&quot; launch_stage: GA metric_kind: DELTA value_type: INT64 unit: &quot;1&quot; labels: - key: customer_id description: &quot;The id of the customer.&quot; - name: library.googleapis.com/book/num_overdue display_name: &quot;Books Overdue&quot; description: &quot;The current number of overdue books.&quot; launch_stage: GA metric_kind: GAUGE value_type: INT64 unit: &quot;1&quot; labels: - key: customer_id description: &quot;The id of the customer.&quot; monitoring: producer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count consumer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count - library.googleapis.com/book/num_overdue # Monitoring configuration. This should not include the &#x27;producer_destinations&#x27; field.
-            &quot;consumerDestinations&quot;: [ # Monitoring configurations for sending metrics to the consumer project. There can be multiple consumer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration.
-              { # Configuration of a specific monitoring destination (the producer project or the consumer project).
-                &quot;monitoredResource&quot;: &quot;A String&quot;, # The monitored resource type. The type must be defined in Service.monitored_resources section.
-                &quot;metrics&quot;: [ # Types of the metrics to report to this monitoring destination. Each type must be defined in Service.metrics section.
-                  &quot;A String&quot;,
-                ],
-              },
-            ],
-            &quot;producerDestinations&quot;: [ # Monitoring configurations for sending metrics to the producer project. There can be multiple producer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration.
-              { # Configuration of a specific monitoring destination (the producer project or the consumer project).
-                &quot;monitoredResource&quot;: &quot;A String&quot;, # The monitored resource type. The type must be defined in Service.monitored_resources section.
-                &quot;metrics&quot;: [ # Types of the metrics to report to this monitoring destination. Each type must be defined in Service.metrics section.
-                  &quot;A String&quot;,
-                ],
-              },
-            ],
-          },
-          &quot;authentication&quot;: { # `Authentication` defines the authentication configuration for an API. Example for an API targeted for external use: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: &quot;*&quot; requirements: provider_id: google_calendar_auth # Auth configuration. Contains only the OAuth rules.
-            &quot;providers&quot;: [ # 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).
-                &quot;authorizationUrl&quot;: &quot;A String&quot;, # Redirect URL if JWT token is required but not present or is expired. Implement authorizationUrl of securityDefinitions in OpenAPI spec.
-                &quot;id&quot;: &quot;A String&quot;, # The unique identifier of the auth provider. It will be referred to by `AuthRequirement.provider_id`. Example: &quot;bookstore_auth&quot;.
-                &quot;issuer&quot;: &quot;A String&quot;, # 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
-                &quot;jwksUri&quot;: &quot;A String&quot;, # URL of the provider&#x27;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
-                &quot;audiences&quot;: &quot;A String&quot;, # 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: - &quot;https://[service.name]/[google.protobuf.Api.name]&quot; - &quot;https://[service.name]/&quot; 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
-                &quot;jwtLocations&quot;: [ # 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: &quot;Bearer &quot; - header: x-goog-iap-jwt-assertion - query: access_token
-                  { # Specifies a location to extract JWT from an API request.
-                    &quot;valuePrefix&quot;: &quot;A String&quot;, # The value prefix. The value format is &quot;value_prefix{token}&quot; Only applies to &quot;in&quot; header type. Must be empty for &quot;in&quot; 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 &quot;Authorization: Bearer {JWT}&quot;, value_prefix=&quot;Bearer &quot; with a space at the end.
-                    &quot;query&quot;: &quot;A String&quot;, # Specifies URL query parameter name to extract JWT token.
-                    &quot;header&quot;: &quot;A String&quot;, # Specifies HTTP header name to extract JWT token.
-                  },
-                ],
-              },
-            ],
-            &quot;rules&quot;: [ # A list of authentication rules that apply to individual API methods. **NOTE:** All service configuration rules follow &quot;last one wins&quot; 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&#x27;s an error to include more than one kind of credential in a single request. If a method doesn&#x27;t have any auth requirements, request credentials will be ignored.
-                &quot;allowWithoutCredential&quot;: True or False, # If true, the service accepts API keys without any other credential. This flag only applies to HTTP and gRPC requests.
-                &quot;oauth&quot;: { # OAuth scopes are a way to define data and permissions on data. For example, there are scopes defined for &quot;Read-only access to Google Calendar&quot; and &quot;Access to Cloud Platform&quot;. 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. # The requirements for OAuth credentials.
-                  &quot;canonicalScopes&quot;: &quot;A String&quot;, # 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
-                },
-                &quot;requirements&quot;: [ # 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).
-                    &quot;providerId&quot;: &quot;A String&quot;, # id from authentication provider. Example: provider_id: bookstore_auth
-                    &quot;audiences&quot;: &quot;A String&quot;, # 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 &quot;https://Service_name/API_name&quot; will be accepted. For example, if no audiences are in the setting, LibraryService API will only accept JWTs with the following audience &quot;https://library-example.googleapis.com/google.example.library.v1.LibraryService&quot;. Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com
-                  },
-                ],
-                &quot;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies. Refer to selector for syntax details.
-              },
-            ],
-          },
           &quot;usage&quot;: { # Configuration controlling usage of a service. # Configuration controlling usage of this service.
             &quot;producerNotificationChannel&quot;: &quot;A String&quot;, # 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.
             &quot;requirements&quot;: [ # Requirements that must be satisfied before a consumer project can use the service. Each requirement is of the form /; for example &#x27;serviceusage.googleapis.com/billing-enabled&#x27;.
@@ -773,8 +808,8 @@
             ],
             &quot;rules&quot;: [ # A list of usage rules that apply to individual API methods. **NOTE:** All service configuration rules follow &quot;last one wins&quot; 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: &quot;*&quot; allow_unregistered_calls: true Example of a method that wants to allow unregistered calls. usage: rules: - selector: &quot;google.example.library.v1.LibraryService.CreateBook&quot; allow_unregistered_calls: true
-                &quot;allowUnregisteredCalls&quot;: True or False, # If true, the selected method allows unregistered calls, e.g. calls that don&#x27;t identify any user or application.
                 &quot;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies. Use &#x27;*&#x27; to indicate all methods in all APIs. Refer to selector for syntax details.
+                &quot;allowUnregisteredCalls&quot;: True or False, # If true, the selected method allows unregistered calls, e.g. calls that don&#x27;t identify any user or application.
                 &quot;skipServiceControl&quot;: 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.
               },
             ],
@@ -789,74 +824,39 @@
               &quot;target&quot;: &quot;A String&quot;, # 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, &quot;8.8.8.8&quot; or &quot;myservice.appspot.com&quot;.
             },
           ],
-          &quot;documentation&quot;: { # `Documentation` provides the information for describing a service. Example: documentation: summary: &gt; 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: &gt; ... - selector: google.calendar.Calendar.Put description: &gt; ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation. # Additional API documentation. Contains only the summary and the documentation URL.
-            &quot;summary&quot;: &quot;A String&quot;, # A short summary of what the service does. Can only be provided by plain text.
-            &quot;rules&quot;: [ # A list of documentation rules that apply to individual API elements. **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
-              { # A documentation rule provides information about individual API elements.
-                &quot;deprecationDescription&quot;: &quot;A String&quot;, # Deprecation description of the selected element(s). It can be provided if an element is marked as `deprecated`.
-                &quot;selector&quot;: &quot;A String&quot;, # The selector is a comma-separated list of patterns. Each pattern is a qualified name of the element which may end in &quot;*&quot;, indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. &quot;foo.*&quot; is ok, but not &quot;foo.b*&quot; or &quot;foo.*.bar&quot;. A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern &quot;*&quot; is used.
-                &quot;description&quot;: &quot;A String&quot;, # Description of the selected API(s).
-              },
-            ],
-            &quot;overview&quot;: &quot;A String&quot;, # Declares a single overview page. For example: documentation: summary: ... overview: (== include overview.md ==) This is a shortcut for the following declaration (using pages style): documentation: summary: ... pages: - name: Overview content: (== include overview.md ==) Note: you cannot specify both `overview` field and `pages` field.
-            &quot;pages&quot;: [ # The top level pages for the documentation set.
-              { # Represents a documentation page. A page can contain subpages to represent nested documentation set structure.
-                &quot;subpages&quot;: [ # Subpages of this page. The order of subpages specified here will be honored in the generated docset.
-                  # Object with schema name: Page
-                ],
-                &quot;name&quot;: &quot;A String&quot;, # The name of the page. It will be used as an identity of the page to generate URI of the page, text of the link to this page in navigation, etc. The full page name (start from the root page name to this page concatenated with `.`) can be used as reference to the page in your documentation. For example: pages: - name: Tutorial content: (== include tutorial.md ==) subpages: - name: Java content: (== include tutorial_java.md ==) You can reference `Java` page using Markdown reference link syntax: `Java`.
-                &quot;content&quot;: &quot;A String&quot;, # The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file.
-              },
-            ],
-            &quot;documentationRootUrl&quot;: &quot;A String&quot;, # The URL to the root of documentation.
-            &quot;serviceRootUrl&quot;: &quot;A String&quot;, # 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.
-          },
-          &quot;monitoredResources&quot;: [ # Defines the monitored resources used by this service. This is required by the Service.monitoring and Service.logging configurations.
-            { # An object that describes the schema of a MonitoredResource object using a type name and a set of labels. For example, the monitored resource descriptor for Google Compute Engine VM instances has a type of `&quot;gce_instance&quot;` and specifies the use of the labels `&quot;instance_id&quot;` and `&quot;zone&quot;` to identify particular VM instances. Different APIs can support different monitored resource types. APIs generally provide a `list` method that returns the monitored resource descriptors used by the API.
-              &quot;launchStage&quot;: &quot;A String&quot;, # Optional. The launch stage of the monitored resource definition.
-              &quot;displayName&quot;: &quot;A String&quot;, # Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, `&quot;Google Cloud SQL Database&quot;`.
-              &quot;labels&quot;: [ # Required. A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels `&quot;database_id&quot;` and `&quot;zone&quot;`.
-                { # A description of a label.
-                  &quot;key&quot;: &quot;A String&quot;, # The label key.
-                  &quot;valueType&quot;: &quot;A String&quot;, # The type of data that can be assigned to the label.
-                  &quot;description&quot;: &quot;A String&quot;, # A human-readable description for the label.
-                },
-              ],
-              &quot;description&quot;: &quot;A String&quot;, # Optional. A detailed description of the monitored resource type that might be used in documentation.
-              &quot;name&quot;: &quot;A String&quot;, # Optional. The resource name of the monitored resource descriptor: `&quot;projects/{project_id}/monitoredResourceDescriptors/{type}&quot;` where {type} is the value of the `type` field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format `&quot;monitoredResourceDescriptors/{type}&quot;`.
-              &quot;type&quot;: &quot;A String&quot;, # Required. The monitored resource type. For example, the type `&quot;cloudsql_database&quot;` represents databases in Google Cloud SQL.
-            },
-          ],
+          &quot;title&quot;: &quot;A String&quot;, # The product title for this service.
+          &quot;name&quot;: &quot;A String&quot;, # The DNS address at which this service is available. An example DNS address would be: `calendar.googleapis.com`.
           &quot;quota&quot;: { # Quota configuration helps to achieve fairness and budgeting in service 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: &quot;1/min/{project}&quot; # 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: &quot;*&quot; 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 # Quota configuration.
             &quot;metricRules&quot;: [ # 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&#x27;s configured quota behaviors to apply to the method call.
-                &quot;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies. Refer to selector for syntax details.
                 &quot;metricCosts&quot;: { # 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.
                   &quot;a_key&quot;: &quot;A String&quot;,
                 },
+                &quot;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies. Refer to selector for syntax details.
               },
             ],
             &quot;limits&quot;: [ # 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`.
-                &quot;unit&quot;: &quot;A String&quot;, # 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: * &quot;1/min/{project}&quot; for quota per minute per project. Note: the order of unit components is insignificant. The &quot;1&quot; at the beginning is required to follow the metric unit syntax.
-                &quot;duration&quot;: &quot;A String&quot;, # Duration of this limit in textual notation. Must be &quot;100s&quot; or &quot;1d&quot;. Used by group-based quotas only.
                 &quot;description&quot;: &quot;A String&quot;, # 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&#x27;s display name (see: `display_name`).
                 &quot;name&quot;: &quot;A String&quot;, # 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 &#x27;-&#x27;. The maximum length of the limit name is 64 characters.
-                &quot;defaultLimit&quot;: &quot;A String&quot;, # 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.
+                &quot;unit&quot;: &quot;A String&quot;, # 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: * &quot;1/min/{project}&quot; for quota per minute per project. Note: the order of unit components is insignificant. The &quot;1&quot; at the beginning is required to follow the metric unit syntax.
                 &quot;freeTier&quot;: &quot;A String&quot;, # 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 &quot;1d&quot;, 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.
+                &quot;duration&quot;: &quot;A String&quot;, # Duration of this limit in textual notation. Must be &quot;100s&quot; or &quot;1d&quot;. Used by group-based quotas only.
                 &quot;metric&quot;: &quot;A String&quot;, # 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.
+                &quot;displayName&quot;: &quot;A String&quot;, # 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.
+                &quot;maxLimit&quot;: &quot;A String&quot;, # 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.
+                &quot;defaultLimit&quot;: &quot;A String&quot;, # 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.
                 &quot;values&quot;: { # 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.
                   &quot;a_key&quot;: &quot;A String&quot;,
                 },
-                &quot;maxLimit&quot;: &quot;A String&quot;, # 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.
-                &quot;displayName&quot;: &quot;A String&quot;, # 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.
               },
             ],
           },
-          &quot;name&quot;: &quot;A String&quot;, # The DNS address at which this service is available. An example DNS address would be: `calendar.googleapis.com`.
         },
+        &quot;parent&quot;: &quot;A String&quot;, # The resource name of the consumer. A valid name would be: - projects/123
       },
     ],
+    &quot;nextPageToken&quot;: &quot;A String&quot;, # Token that can be passed to `ListServices` to resume a paginated query.
   }</pre>
 </div>