chore: regens API reference docs (#889)

diff --git a/docs/dyn/serviceusage_v1beta1.services.html b/docs/dyn/serviceusage_v1beta1.services.html
index e738ab3..d568a19 100644
--- a/docs/dyn/serviceusage_v1beta1.services.html
+++ b/docs/dyn/serviceusage_v1beta1.services.html
@@ -75,7 +75,12 @@
 <h1><a href="serviceusage_v1beta1.html">Service Usage API</a> . <a href="serviceusage_v1beta1.services.html">services</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#batchEnable">batchEnable(parent, body, x__xgafv=None)</a></code></p>
+  <code><a href="serviceusage_v1beta1.services.consumerQuotaMetrics.html">consumerQuotaMetrics()</a></code>
+</p>
+<p class="firstline">Returns the consumerQuotaMetrics Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#batchEnable">batchEnable(parent, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Enable multiple services on a project. The operation is atomic: if enabling</p>
 <p class="toc_element">
   <code><a href="#disable">disable(name, body=None, x__xgafv=None)</a></code></p>
@@ -94,11 +99,11 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="batchEnable">batchEnable(parent, body, x__xgafv=None)</code>
+    <code class="details" id="batchEnable">batchEnable(parent, body=None, x__xgafv=None)</code>
   <pre>Enable multiple services on a project. The operation is atomic: if enabling
 any service fails, then the entire batch fails, and no state changes occur.
 
-Operation<response: google.protobuf.Empty>
+Operation&lt;response: google.protobuf.Empty&gt;
 
 Args:
   parent: string, Parent to enable services on.
@@ -108,7 +113,7 @@
 where `123` is the project number (not project ID).
 
 The `BatchEnableServices` method currently only supports projects. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # Request message for the `BatchEnableServices` method.
@@ -140,28 +145,6 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "metadata": { # Service-specific metadata associated with the operation.  It typically
-        # contains progress information and common metadata such as create time.
-        # Some services might not provide such metadata.  Any method that returns a
-        # long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If `true`, the operation is completed, and either `error` or `response` is
-        # available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should be a resource name ending with `operations/{unique_id}`.
     "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
         # different programming environments, including REST APIs and RPC APIs. It is
         # used by [gRPC](https://github.com/grpc). Each `Status` message contains
@@ -180,6 +163,28 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If `true`, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should be a resource name ending with `operations/{unique_id}`.
+    "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.
+    },
   }</pre>
 </div>
 
@@ -193,7 +198,7 @@
 currently enabled. Callers will receive a `FAILED_PRECONDITION` status if
 the target service is not currently enabled.
 
-Operation<response: google.protobuf.Empty>
+Operation&lt;response: google.protobuf.Empty&gt;
 
 Args:
   name: string, Name of the consumer and service to disable the service on.
@@ -219,28 +224,6 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "metadata": { # Service-specific metadata associated with the operation.  It typically
-        # contains progress information and common metadata such as create time.
-        # Some services might not provide such metadata.  Any method that returns a
-        # long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If `true`, the operation is completed, and either `error` or `response` is
-        # available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should be a resource name ending with `operations/{unique_id}`.
     "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
         # different programming environments, including REST APIs and RPC APIs. It is
         # used by [gRPC](https://github.com/grpc). Each `Status` message contains
@@ -259,6 +242,28 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If `true`, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should be a resource name ending with `operations/{unique_id}`.
+    "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.
+    },
   }</pre>
 </div>
 
@@ -266,7 +271,7 @@
     <code class="details" id="enable">enable(name, body=None, x__xgafv=None)</code>
   <pre>Enable a service so that it can be used with a project.
 
-Operation<response: google.protobuf.Empty>
+Operation&lt;response: google.protobuf.Empty&gt;
 
 Args:
   name: string, Name of the consumer and service to enable the service on.
@@ -296,28 +301,6 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "metadata": { # Service-specific metadata associated with the operation.  It typically
-        # contains progress information and common metadata such as create time.
-        # Some services might not provide such metadata.  Any method that returns a
-        # long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If `true`, the operation is completed, and either `error` or `response` is
-        # available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should be a resource name ending with `operations/{unique_id}`.
     "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
         # different programming environments, including REST APIs and RPC APIs. It is
         # used by [gRPC](https://github.com/grpc). Each `Status` message contains
@@ -336,6 +319,28 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If `true`, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should be a resource name ending with `operations/{unique_id}`.
+    "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.
+    },
   }</pre>
 </div>
 
@@ -363,10 +368,128 @@
         # 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.
+      "documentation": { # `Documentation` provides the information for describing a service. # Additional API documentation. Contains only the summary and the
+          # documentation URL.
+          #
+          # Example:
+          # &lt;pre&gt;&lt;code&gt;documentation:
+          #   summary: &gt;
+          #     The Google Calendar API gives access
+          #     to most calendar features.
+          #   pages:
+          #   - name: Overview
+          #     content: &amp;#40;== include google/foo/overview.md ==&amp;#41;
+          #   - name: Tutorial
+          #     content: &amp;#40;== include google/foo/tutorial.md ==&amp;#41;
+          #     subpages;
+          #     - name: Java
+          #       content: &amp;#40;== include google/foo/tutorial_java.md ==&amp;#41;
+          #   rules:
+          #   - selector: google.calendar.Calendar.Get
+          #     description: &gt;
+          #       ...
+          #   - selector: google.calendar.Calendar.Put
+          #     description: &gt;
+          #       ...
+          # &lt;/code&gt;&lt;/pre&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:
+          # &lt;pre&gt;&lt;code&gt;&amp;#91;fully.qualified.proto.name]&amp;#91;]&lt;/code&gt;&lt;/pre&gt;
+          # To override the display text used for the link, this can be used:
+          # &lt;pre&gt;&lt;code&gt;&amp;#91;display text]&amp;#91;fully.qualified.proto.name]&lt;/code&gt;&lt;/pre&gt;
+          # Text can be excluded from doc using the following notation:
+          # &lt;pre&gt;&lt;code&gt;&amp;#40;-- internal comment --&amp;#41;&lt;/code&gt;&lt;/pre&gt;
+          #
+          # 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:
+          # &lt;pre&gt;&lt;code&gt;&amp;#40;== include path/to/file ==&amp;#41;&lt;/code&gt;&lt;/pre&gt;
+          # 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:
+          # &lt;pre&gt;&lt;code&gt;&amp;#40;== resource_for v1.shelves.books ==&amp;#41;&lt;/code&gt;&lt;/pre&gt;
+          # The directive `suppress_warning` does not directly affect documentation
+          # and is documented together with service config validation.
+        "rules": [ # A list of documentation rules that apply to individual API elements.
+            #
+            # **NOTE:** All service configuration rules follow "last one wins" order.
+          { # A documentation rule provides information about individual API elements.
+            "description": "A String", # Description of the selected API(s).
+            "deprecationDescription": "A String", # Deprecation description of the selected element(s). It can be provided if
+                # an element is marked as `deprecated`.
+            "selector": "A String", # The selector is a comma-separated list of patterns. Each pattern is a
+                # qualified name of the element which may end in "*", indicating a wildcard.
+                # Wildcards are only allowed at the end and for a whole component of the
+                # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A
+                # wildcard will match one or more components. To specify a default for all
+                # applicable elements, the whole pattern "*" is used.
+          },
+        ],
+        "documentationRootUrl": "A String", # The URL to the root of documentation.
+        "summary": "A String", # A short summary of what the service does. Can only be provided by
+            # plain text.
+        "serviceRootUrl": "A String", # Specifies the service root url if the default one (the service name
+            # from the yaml file) is not suitable. This can be seen in any fully
+            # specified service urls as well as sections that show a base that other
+            # urls are relative to.
+        "overview": "A String", # Declares a single overview page. For example:
+            # &lt;pre&gt;&lt;code&gt;documentation:
+            #   summary: ...
+            #   overview: &amp;#40;== include overview.md ==&amp;#41;
+            # &lt;/code&gt;&lt;/pre&gt;
+            # This is a shortcut for the following declaration (using pages style):
+            # &lt;pre&gt;&lt;code&gt;documentation:
+            #   summary: ...
+            #   pages:
+            #   - name: Overview
+            #     content: &amp;#40;== include overview.md ==&amp;#41;
+            # &lt;/code&gt;&lt;/pre&gt;
+            # Note: you cannot specify both `overview` field and `pages` field.
+        "pages": [ # The top level pages for the documentation set.
+          { # Represents a documentation page. A page can contain subpages to represent
+              # nested documentation set structure.
+            "content": "A String", # The Markdown content of the page. You can use &lt;code&gt;&amp;#40;== include {path}
+                # ==&amp;#41;&lt;/code&gt; to include content from a Markdown file.
+            "subpages": [ # Subpages of this page. The order of subpages specified here will be
+                # honored in the generated docset.
+              # Object with schema name: Page
+            ],
+            "name": "A String", # The name of the page. It will be used as an identity of the page to
+                # generate URI of the page, text of the link to this page in navigation,
+                # etc. The full page name (start from the root page name to this page
+                # concatenated with `.`) can be used as reference to the page in your
+                # documentation. For example:
+                # &lt;pre&gt;&lt;code&gt;pages:
+                # - name: Tutorial
+                #   content: &amp;#40;== include tutorial.md ==&amp;#41;
+                #   subpages:
+                #   - name: Java
+                #     content: &amp;#40;== include tutorial_java.md ==&amp;#41;
+                # &lt;/code&gt;&lt;/pre&gt;
+                # You can reference `Java` page using Markdown reference link syntax:
+                # `Java`.
+          },
+        ],
+      },
       "name": "A String", # The DNS address at which this service is available.
           #
           # An example DNS address would be:
           # `calendar.googleapis.com`.
+      "title": "A String", # The product title for this service.
       "apis": [ # A list of API interfaces exported by this service. Contains only the names,
           # versions, and method names of the interfaces.
         { # Api is a light-weight descriptor for an API Interface.
@@ -486,7 +609,7 @@
               # chosen based on the product plan.
               #
               # The major version is also reflected in the package name of the
-              # interface, which must end in `v<major-version>`, as in
+              # interface, which must end in `v&lt;major-version&gt;`, 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.
@@ -532,119 +655,6 @@
           ],
         },
       ],
-      "documentation": { # `Documentation` provides the information for describing a service. # Additional API documentation. Contains only the summary and the
-          # documentation URL.
-          #
-          # Example:
-          # <pre><code>documentation:
-          #   summary: >
-          #     The Google Calendar API gives access
-          #     to most calendar features.
-          #   pages:
-          #   - name: Overview
-          #     content: &#40;== include google/foo/overview.md ==&#41;
-          #   - name: Tutorial
-          #     content: &#40;== include google/foo/tutorial.md ==&#41;
-          #     subpages;
-          #     - name: Java
-          #       content: &#40;== include google/foo/tutorial_java.md ==&#41;
-          #   rules:
-          #   - selector: google.calendar.Calendar.Get
-          #     description: >
-          #       ...
-          #   - selector: google.calendar.Calendar.Put
-          #     description: >
-          #       ...
-          # </code></pre>
-          # Documentation is provided in markdown syntax. In addition to
-          # standard markdown features, definition lists, tables and fenced
-          # code blocks are supported. Section headers can be provided and are
-          # interpreted relative to the section nesting of the context where
-          # a documentation fragment is embedded.
-          #
-          # Documentation from the IDL is merged with documentation defined
-          # via the config at normalization time, where documentation provided
-          # by config rules overrides IDL provided.
-          #
-          # A number of constructs specific to the API platform are supported
-          # in documentation text.
-          #
-          # In order to reference a proto element, the following
-          # notation can be used:
-          # <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
-          # To override the display text used for the link, this can be used:
-          # <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
-          # Text can be excluded from doc using the following notation:
-          # <pre><code>&#40;-- internal comment --&#41;</code></pre>
-          #
-          # A few directives are available in documentation. Note that
-          # directives must appear on a single line to be properly
-          # identified. The `include` directive includes a markdown file from
-          # an external source:
-          # <pre><code>&#40;== include path/to/file ==&#41;</code></pre>
-          # The `resource_for` directive marks a message to be the resource of
-          # a collection in REST view. If it is not specified, tools attempt
-          # to infer the resource from the operations in a collection:
-          # <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>
-          # The directive `suppress_warning` does not directly affect documentation
-          # and is documented together with service config validation.
-        "rules": [ # A list of documentation rules that apply to individual API elements.
-            #
-            # **NOTE:** All service configuration rules follow "last one wins" order.
-          { # A documentation rule provides information about individual API elements.
-            "description": "A String", # Description of the selected API(s).
-            "deprecationDescription": "A String", # Deprecation description of the selected element(s). It can be provided if
-                # an element is marked as `deprecated`.
-            "selector": "A String", # The selector is a comma-separated list of patterns. Each pattern is a
-                # qualified name of the element which may end in "*", indicating a wildcard.
-                # Wildcards are only allowed at the end and for a whole component of the
-                # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A
-                # wildcard will match one or more components. To specify a default for all
-                # applicable elements, the whole pattern "*" is used.
-          },
-        ],
-        "overview": "A String", # Declares a single overview page. For example:
-            # <pre><code>documentation:
-            #   summary: ...
-            #   overview: &#40;== include overview.md ==&#41;
-            # </code></pre>
-            # This is a shortcut for the following declaration (using pages style):
-            # <pre><code>documentation:
-            #   summary: ...
-            #   pages:
-            #   - name: Overview
-            #     content: &#40;== include overview.md ==&#41;
-            # </code></pre>
-            # Note: you cannot specify both `overview` field and `pages` field.
-        "pages": [ # The top level pages for the documentation set.
-          { # Represents a documentation page. A page can contain subpages to represent
-              # nested documentation set structure.
-            "content": "A String", # The Markdown content of the page. You can use <code>&#40;== include {path}
-                # ==&#41;</code> to include content from a Markdown file.
-            "subpages": [ # Subpages of this page. The order of subpages specified here will be
-                # honored in the generated docset.
-              # Object with schema name: Page
-            ],
-            "name": "A String", # The name of the page. It will be used as an identity of the page to
-                # generate URI of the page, text of the link to this page in navigation,
-                # etc. The full page name (start from the root page name to this page
-                # concatenated with `.`) can be used as reference to the page in your
-                # documentation. For example:
-                # <pre><code>pages:
-                # - name: Tutorial
-                #   content: &#40;== include tutorial.md ==&#41;
-                #   subpages:
-                #   - name: Java
-                #     content: &#40;== include tutorial_java.md ==&#41;
-                # </code></pre>
-                # You can reference `Java` page using Markdown reference link syntax:
-                # `Java`.
-          },
-        ],
-        "documentationRootUrl": "A String", # The URL to the root of documentation.
-        "summary": "A String", # A short summary of what the service does. Can only be provided by
-            # plain text.
-      },
       "quota": { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
           # usage.
           #
@@ -753,10 +763,7 @@
                 # indicating unlimited maximum quota.
                 #
                 # Used by group-based quotas only.
-            "duration": "A String", # Duration of this limit in textual notation. Example: "100s", "24h", "1d".
-                # For duration longer than a day, only multiple of days is supported. We
-                # support only "100s" and "1d" for now. Additional support will be added in
-                # the future. "0" indicates indefinite duration.
+            "duration": "A String", # Duration of this limit in textual notation. Must be "100s" or "1d".
                 #
                 # Used by group-based quotas only.
             "freeTier": "A String", # Free tier value displayed in the Developers Console for this limit.
@@ -871,14 +878,48 @@
           { # Configuration for an authentication provider, including support for
               # [JSON Web Token
               # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
+            "jwtLocations": [ # Defines the locations to extract the JWT.
+                #
+                # JWT locations can be either from HTTP headers or URL query parameters.
+                # The rule is that the first match wins. The checking order is: checking
+                # all headers first, then URL query parameters.
+                #
+                # If not specified,  default to use following 3 locations:
+                #    1) Authorization: Bearer
+                #    2) x-goog-iap-jwt-assertion
+                #    3) access_token query parameter
+                #
+                # Default locations can be specified as followings:
+                #    jwt_locations:
+                #    - header: Authorization
+                #      value_prefix: "Bearer "
+                #    - header: x-goog-iap-jwt-assertion
+                #    - query: access_token
+              { # Specifies a location to extract JWT from an API request.
+                "header": "A String", # Specifies HTTP header name to extract JWT token.
+                "valuePrefix": "A String", # The value prefix. The value format is "value_prefix{token}"
+                    # Only applies to "in" header type. Must be empty for "in" query type.
+                    # If not empty, the header value has to match (case sensitive) this prefix.
+                    # If not matched, JWT will not be extracted. If matched, JWT will be
+                    # extracted after the prefix is removed.
+                    #
+                    # For example, for "Authorization: Bearer {JWT}",
+                    # value_prefix="Bearer " with a space at the end.
+                "query": "A String", # Specifies URL query parameter name to extract JWT token.
+              },
+            ],
             "audiences": "A String", # The list of JWT
                 # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
                 # that are allowed to access. A JWT containing any of these audiences will
-                # be accepted. When this setting is absent, only JWTs with audience
-                # "https://Service_name/API_name"
-                # will be accepted. For example, if no audiences are in the setting,
-                # LibraryService API will only accept JWTs with the following audience
-                # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
+                # be accepted. When this setting is absent, JWTs with audiences:
+                #   - "https://[service.name]/[google.protobuf.Api.name]"
+                #   - "https://[service.name]/"
+                # will be accepted.
+                # For example, if no audiences are in the setting, LibraryService API will
+                # accept JWTs with the following audiences:
+                #   -
+                #   https://library-example.googleapis.com/google.example.library.v1.LibraryService
+                #   - https://library-example.googleapis.com/
                 #
                 # Example:
                 #
@@ -940,18 +981,38 @@
               #       rules:
               #       - selector: "google.example.library.v1.LibraryService.CreateBook"
               #         allow_unregistered_calls: true
-            "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
-                # methods in all APIs.
-                #
-                # Refer to selector for syntax details.
             "skipServiceControl": True or False, # If true, the selected method should skip service control and the control
                 # plane features, such as quota and billing, will not be available.
                 # This flag is used by Google Cloud Endpoints to bypass checks for internal
                 # methods, such as service health check methods.
             "allowUnregisteredCalls": True or False, # If true, the selected method allows unregistered calls, e.g. calls
                 # that don't identify any user or application.
+            "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
+                # methods in all APIs.
+                #
+                # Refer to selector for syntax details.
           },
         ],
+        "serviceIdentity": { # The per-product per-project service identity for a service. # The configuration of a per-product per-project service identity.
+            #
+            #
+            # Use this field to configure per-product per-project service identity.
+            # Example of a service identity configuration.
+            #
+            #     usage:
+            #       service_identity:
+            #       - service_account_parent: "projects/123456789"
+            #         display_name: "Cloud XXX Service Agent"
+            #         description: "Used as the identity of Cloud XXX to access resources"
+          "displayName": "A String", # Optional. A user-specified name for the service account.
+              # Must be less than or equal to 100 UTF-8 bytes.
+          "description": "A String", # Optional. A user-specified opaque description of the service account.
+              # Must be less than or equal to 256 UTF-8 bytes.
+          "serviceAccountParent": "A String", # A service account project that hosts the service accounts.
+              #
+              # An example name would be:
+              # `projects/123456789`
+        },
         "producerNotificationChannel": "A String", # The full resource name of a channel used for sending notifications to the
             # service producer.
             #
@@ -961,12 +1022,11 @@
             # of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format
             # documented in https://cloud.google.com/pubsub/docs/overview.
         "requirements": [ # Requirements that must be satisfied before a consumer project can use the
-            # service. Each requirement is of the form <service.name>/<requirement-id>;
+            # service. Each requirement is of the form &lt;service.name&gt;/&lt;requirement-id&gt;;
             # for example 'serviceusage.googleapis.com/billing-enabled'.
           "A String",
         ],
       },
-      "title": "A String", # The product title for this service.
       "endpoints": [ # Configuration for network endpoints. Contains only the names and aliases
           # of the endpoints.
         { # `Endpoint` describes a network endpoint that serves a set of APIs.
@@ -1060,10 +1120,128 @@
             # 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.
+          "documentation": { # `Documentation` provides the information for describing a service. # Additional API documentation. Contains only the summary and the
+              # documentation URL.
+              #
+              # Example:
+              # &lt;pre&gt;&lt;code&gt;documentation:
+              #   summary: &gt;
+              #     The Google Calendar API gives access
+              #     to most calendar features.
+              #   pages:
+              #   - name: Overview
+              #     content: &amp;#40;== include google/foo/overview.md ==&amp;#41;
+              #   - name: Tutorial
+              #     content: &amp;#40;== include google/foo/tutorial.md ==&amp;#41;
+              #     subpages;
+              #     - name: Java
+              #       content: &amp;#40;== include google/foo/tutorial_java.md ==&amp;#41;
+              #   rules:
+              #   - selector: google.calendar.Calendar.Get
+              #     description: &gt;
+              #       ...
+              #   - selector: google.calendar.Calendar.Put
+              #     description: &gt;
+              #       ...
+              # &lt;/code&gt;&lt;/pre&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:
+              # &lt;pre&gt;&lt;code&gt;&amp;#91;fully.qualified.proto.name]&amp;#91;]&lt;/code&gt;&lt;/pre&gt;
+              # To override the display text used for the link, this can be used:
+              # &lt;pre&gt;&lt;code&gt;&amp;#91;display text]&amp;#91;fully.qualified.proto.name]&lt;/code&gt;&lt;/pre&gt;
+              # Text can be excluded from doc using the following notation:
+              # &lt;pre&gt;&lt;code&gt;&amp;#40;-- internal comment --&amp;#41;&lt;/code&gt;&lt;/pre&gt;
+              #
+              # 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:
+              # &lt;pre&gt;&lt;code&gt;&amp;#40;== include path/to/file ==&amp;#41;&lt;/code&gt;&lt;/pre&gt;
+              # 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:
+              # &lt;pre&gt;&lt;code&gt;&amp;#40;== resource_for v1.shelves.books ==&amp;#41;&lt;/code&gt;&lt;/pre&gt;
+              # The directive `suppress_warning` does not directly affect documentation
+              # and is documented together with service config validation.
+            "rules": [ # A list of documentation rules that apply to individual API elements.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # A documentation rule provides information about individual API elements.
+                "description": "A String", # Description of the selected API(s).
+                "deprecationDescription": "A String", # Deprecation description of the selected element(s). It can be provided if
+                    # an element is marked as `deprecated`.
+                "selector": "A String", # The selector is a comma-separated list of patterns. Each pattern is a
+                    # qualified name of the element which may end in "*", indicating a wildcard.
+                    # Wildcards are only allowed at the end and for a whole component of the
+                    # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A
+                    # wildcard will match one or more components. To specify a default for all
+                    # applicable elements, the whole pattern "*" is used.
+              },
+            ],
+            "documentationRootUrl": "A String", # The URL to the root of documentation.
+            "summary": "A String", # A short summary of what the service does. Can only be provided by
+                # plain text.
+            "serviceRootUrl": "A String", # Specifies the service root url if the default one (the service name
+                # from the yaml file) is not suitable. This can be seen in any fully
+                # specified service urls as well as sections that show a base that other
+                # urls are relative to.
+            "overview": "A String", # Declares a single overview page. For example:
+                # &lt;pre&gt;&lt;code&gt;documentation:
+                #   summary: ...
+                #   overview: &amp;#40;== include overview.md ==&amp;#41;
+                # &lt;/code&gt;&lt;/pre&gt;
+                # This is a shortcut for the following declaration (using pages style):
+                # &lt;pre&gt;&lt;code&gt;documentation:
+                #   summary: ...
+                #   pages:
+                #   - name: Overview
+                #     content: &amp;#40;== include overview.md ==&amp;#41;
+                # &lt;/code&gt;&lt;/pre&gt;
+                # Note: you cannot specify both `overview` field and `pages` field.
+            "pages": [ # The top level pages for the documentation set.
+              { # Represents a documentation page. A page can contain subpages to represent
+                  # nested documentation set structure.
+                "content": "A String", # The Markdown content of the page. You can use &lt;code&gt;&amp;#40;== include {path}
+                    # ==&amp;#41;&lt;/code&gt; to include content from a Markdown file.
+                "subpages": [ # Subpages of this page. The order of subpages specified here will be
+                    # honored in the generated docset.
+                  # Object with schema name: Page
+                ],
+                "name": "A String", # The name of the page. It will be used as an identity of the page to
+                    # generate URI of the page, text of the link to this page in navigation,
+                    # etc. The full page name (start from the root page name to this page
+                    # concatenated with `.`) can be used as reference to the page in your
+                    # documentation. For example:
+                    # &lt;pre&gt;&lt;code&gt;pages:
+                    # - name: Tutorial
+                    #   content: &amp;#40;== include tutorial.md ==&amp;#41;
+                    #   subpages:
+                    #   - name: Java
+                    #     content: &amp;#40;== include tutorial_java.md ==&amp;#41;
+                    # &lt;/code&gt;&lt;/pre&gt;
+                    # You can reference `Java` page using Markdown reference link syntax:
+                    # `Java`.
+              },
+            ],
+          },
           "name": "A String", # The DNS address at which this service is available.
               #
               # An example DNS address would be:
               # `calendar.googleapis.com`.
+          "title": "A String", # The product title for this service.
           "apis": [ # A list of API interfaces exported by this service. Contains only the names,
               # versions, and method names of the interfaces.
             { # Api is a light-weight descriptor for an API Interface.
@@ -1183,7 +1361,7 @@
                   # chosen based on the product plan.
                   #
                   # The major version is also reflected in the package name of the
-                  # interface, which must end in `v<major-version>`, as in
+                  # interface, which must end in `v&lt;major-version&gt;`, 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.
@@ -1229,119 +1407,6 @@
               ],
             },
           ],
-          "documentation": { # `Documentation` provides the information for describing a service. # Additional API documentation. Contains only the summary and the
-              # documentation URL.
-              #
-              # Example:
-              # <pre><code>documentation:
-              #   summary: >
-              #     The Google Calendar API gives access
-              #     to most calendar features.
-              #   pages:
-              #   - name: Overview
-              #     content: &#40;== include google/foo/overview.md ==&#41;
-              #   - name: Tutorial
-              #     content: &#40;== include google/foo/tutorial.md ==&#41;
-              #     subpages;
-              #     - name: Java
-              #       content: &#40;== include google/foo/tutorial_java.md ==&#41;
-              #   rules:
-              #   - selector: google.calendar.Calendar.Get
-              #     description: >
-              #       ...
-              #   - selector: google.calendar.Calendar.Put
-              #     description: >
-              #       ...
-              # </code></pre>
-              # Documentation is provided in markdown syntax. In addition to
-              # standard markdown features, definition lists, tables and fenced
-              # code blocks are supported. Section headers can be provided and are
-              # interpreted relative to the section nesting of the context where
-              # a documentation fragment is embedded.
-              #
-              # Documentation from the IDL is merged with documentation defined
-              # via the config at normalization time, where documentation provided
-              # by config rules overrides IDL provided.
-              #
-              # A number of constructs specific to the API platform are supported
-              # in documentation text.
-              #
-              # In order to reference a proto element, the following
-              # notation can be used:
-              # <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
-              # To override the display text used for the link, this can be used:
-              # <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
-              # Text can be excluded from doc using the following notation:
-              # <pre><code>&#40;-- internal comment --&#41;</code></pre>
-              #
-              # A few directives are available in documentation. Note that
-              # directives must appear on a single line to be properly
-              # identified. The `include` directive includes a markdown file from
-              # an external source:
-              # <pre><code>&#40;== include path/to/file ==&#41;</code></pre>
-              # The `resource_for` directive marks a message to be the resource of
-              # a collection in REST view. If it is not specified, tools attempt
-              # to infer the resource from the operations in a collection:
-              # <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>
-              # The directive `suppress_warning` does not directly affect documentation
-              # and is documented together with service config validation.
-            "rules": [ # A list of documentation rules that apply to individual API elements.
-                #
-                # **NOTE:** All service configuration rules follow "last one wins" order.
-              { # A documentation rule provides information about individual API elements.
-                "description": "A String", # Description of the selected API(s).
-                "deprecationDescription": "A String", # Deprecation description of the selected element(s). It can be provided if
-                    # an element is marked as `deprecated`.
-                "selector": "A String", # The selector is a comma-separated list of patterns. Each pattern is a
-                    # qualified name of the element which may end in "*", indicating a wildcard.
-                    # Wildcards are only allowed at the end and for a whole component of the
-                    # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A
-                    # wildcard will match one or more components. To specify a default for all
-                    # applicable elements, the whole pattern "*" is used.
-              },
-            ],
-            "overview": "A String", # Declares a single overview page. For example:
-                # <pre><code>documentation:
-                #   summary: ...
-                #   overview: &#40;== include overview.md ==&#41;
-                # </code></pre>
-                # This is a shortcut for the following declaration (using pages style):
-                # <pre><code>documentation:
-                #   summary: ...
-                #   pages:
-                #   - name: Overview
-                #     content: &#40;== include overview.md ==&#41;
-                # </code></pre>
-                # Note: you cannot specify both `overview` field and `pages` field.
-            "pages": [ # The top level pages for the documentation set.
-              { # Represents a documentation page. A page can contain subpages to represent
-                  # nested documentation set structure.
-                "content": "A String", # The Markdown content of the page. You can use <code>&#40;== include {path}
-                    # ==&#41;</code> to include content from a Markdown file.
-                "subpages": [ # Subpages of this page. The order of subpages specified here will be
-                    # honored in the generated docset.
-                  # Object with schema name: Page
-                ],
-                "name": "A String", # The name of the page. It will be used as an identity of the page to
-                    # generate URI of the page, text of the link to this page in navigation,
-                    # etc. The full page name (start from the root page name to this page
-                    # concatenated with `.`) can be used as reference to the page in your
-                    # documentation. For example:
-                    # <pre><code>pages:
-                    # - name: Tutorial
-                    #   content: &#40;== include tutorial.md ==&#41;
-                    #   subpages:
-                    #   - name: Java
-                    #     content: &#40;== include tutorial_java.md ==&#41;
-                    # </code></pre>
-                    # You can reference `Java` page using Markdown reference link syntax:
-                    # `Java`.
-              },
-            ],
-            "documentationRootUrl": "A String", # The URL to the root of documentation.
-            "summary": "A String", # A short summary of what the service does. Can only be provided by
-                # plain text.
-          },
           "quota": { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
               # usage.
               #
@@ -1450,10 +1515,7 @@
                     # indicating unlimited maximum quota.
                     #
                     # Used by group-based quotas only.
-                "duration": "A String", # Duration of this limit in textual notation. Example: "100s", "24h", "1d".
-                    # For duration longer than a day, only multiple of days is supported. We
-                    # support only "100s" and "1d" for now. Additional support will be added in
-                    # the future. "0" indicates indefinite duration.
+                "duration": "A String", # Duration of this limit in textual notation. Must be "100s" or "1d".
                     #
                     # Used by group-based quotas only.
                 "freeTier": "A String", # Free tier value displayed in the Developers Console for this limit.
@@ -1568,14 +1630,48 @@
               { # Configuration for an authentication provider, including support for
                   # [JSON Web Token
                   # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
+                "jwtLocations": [ # Defines the locations to extract the JWT.
+                    #
+                    # JWT locations can be either from HTTP headers or URL query parameters.
+                    # The rule is that the first match wins. The checking order is: checking
+                    # all headers first, then URL query parameters.
+                    #
+                    # If not specified,  default to use following 3 locations:
+                    #    1) Authorization: Bearer
+                    #    2) x-goog-iap-jwt-assertion
+                    #    3) access_token query parameter
+                    #
+                    # Default locations can be specified as followings:
+                    #    jwt_locations:
+                    #    - header: Authorization
+                    #      value_prefix: "Bearer "
+                    #    - header: x-goog-iap-jwt-assertion
+                    #    - query: access_token
+                  { # Specifies a location to extract JWT from an API request.
+                    "header": "A String", # Specifies HTTP header name to extract JWT token.
+                    "valuePrefix": "A String", # The value prefix. The value format is "value_prefix{token}"
+                        # Only applies to "in" header type. Must be empty for "in" query type.
+                        # If not empty, the header value has to match (case sensitive) this prefix.
+                        # If not matched, JWT will not be extracted. If matched, JWT will be
+                        # extracted after the prefix is removed.
+                        #
+                        # For example, for "Authorization: Bearer {JWT}",
+                        # value_prefix="Bearer " with a space at the end.
+                    "query": "A String", # Specifies URL query parameter name to extract JWT token.
+                  },
+                ],
                 "audiences": "A String", # The list of JWT
                     # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
                     # that are allowed to access. A JWT containing any of these audiences will
-                    # be accepted. When this setting is absent, only JWTs with audience
-                    # "https://Service_name/API_name"
-                    # will be accepted. For example, if no audiences are in the setting,
-                    # LibraryService API will only accept JWTs with the following audience
-                    # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
+                    # be accepted. When this setting is absent, JWTs with audiences:
+                    #   - "https://[service.name]/[google.protobuf.Api.name]"
+                    #   - "https://[service.name]/"
+                    # will be accepted.
+                    # For example, if no audiences are in the setting, LibraryService API will
+                    # accept JWTs with the following audiences:
+                    #   -
+                    #   https://library-example.googleapis.com/google.example.library.v1.LibraryService
+                    #   - https://library-example.googleapis.com/
                     #
                     # Example:
                     #
@@ -1637,18 +1733,38 @@
                   #       rules:
                   #       - selector: "google.example.library.v1.LibraryService.CreateBook"
                   #         allow_unregistered_calls: true
-                "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
-                    # methods in all APIs.
-                    #
-                    # Refer to selector for syntax details.
                 "skipServiceControl": True or False, # If true, the selected method should skip service control and the control
                     # plane features, such as quota and billing, will not be available.
                     # This flag is used by Google Cloud Endpoints to bypass checks for internal
                     # methods, such as service health check methods.
                 "allowUnregisteredCalls": True or False, # If true, the selected method allows unregistered calls, e.g. calls
                     # that don't identify any user or application.
+                "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
+                    # methods in all APIs.
+                    #
+                    # Refer to selector for syntax details.
               },
             ],
+            "serviceIdentity": { # The per-product per-project service identity for a service. # The configuration of a per-product per-project service identity.
+                #
+                #
+                # Use this field to configure per-product per-project service identity.
+                # Example of a service identity configuration.
+                #
+                #     usage:
+                #       service_identity:
+                #       - service_account_parent: "projects/123456789"
+                #         display_name: "Cloud XXX Service Agent"
+                #         description: "Used as the identity of Cloud XXX to access resources"
+              "displayName": "A String", # Optional. A user-specified name for the service account.
+                  # Must be less than or equal to 100 UTF-8 bytes.
+              "description": "A String", # Optional. A user-specified opaque description of the service account.
+                  # Must be less than or equal to 256 UTF-8 bytes.
+              "serviceAccountParent": "A String", # A service account project that hosts the service accounts.
+                  #
+                  # An example name would be:
+                  # `projects/123456789`
+            },
             "producerNotificationChannel": "A String", # The full resource name of a channel used for sending notifications to the
                 # service producer.
                 #
@@ -1658,12 +1774,11 @@
                 # of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format
                 # documented in https://cloud.google.com/pubsub/docs/overview.
             "requirements": [ # Requirements that must be satisfied before a consumer project can use the
-                # service. Each requirement is of the form <service.name>/<requirement-id>;
+                # service. Each requirement is of the form &lt;service.name&gt;/&lt;requirement-id&gt;;
                 # for example 'serviceusage.googleapis.com/billing-enabled'.
               "A String",
             ],
           },
-          "title": "A String", # The product title for this service.
           "endpoints": [ # Configuration for network endpoints. Contains only the names and aliases
               # of the endpoints.
             { # `Endpoint` describes a network endpoint that serves a set of APIs.