docs: update docs (#916)

* fix: re-run script

* test: fix noxfile
diff --git a/docs/dyn/servicemanagement_v1.services.html b/docs/dyn/servicemanagement_v1.services.html
index 36b3e13..2a30eca 100644
--- a/docs/dyn/servicemanagement_v1.services.html
+++ b/docs/dyn/servicemanagement_v1.services.html
@@ -114,7 +114,7 @@
   <code><a href="#getIamPolicy">getIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the access control policy for a resource.</p>
 <p class="toc_element">
-  <code><a href="#list">list(consumerId=None, pageToken=None, pageSize=None, producerProjectId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(producerProjectId=None, pageSize=None, consumerId=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists managed services.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -149,9 +149,9 @@
 
 { # The full representation of a Service that is managed by
     # Google Service Management.
-  &quot;producerProjectId&quot;: &quot;A String&quot;, # ID of the project that produces and owns this service.
   &quot;serviceName&quot;: &quot;A String&quot;, # The name of the service. See the [overview](/service-management/overview)
       # for naming requirements.
+  &quot;producerProjectId&quot;: &quot;A String&quot;, # ID of the project that produces and owns this service.
 }
 
   x__xgafv: string, V1 error format.
@@ -164,6 +164,27 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
+    &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
+        # different programming environments, including REST APIs and RPC APIs. It is
+        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+        # three pieces of data: error code, error message, and error details.
+        #
+        # You can find out more about this error model and how to work with it in the
+        # [API Design Guide](https://cloud.google.com/apis/design/errors).
+      &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;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;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
@@ -183,27 +204,6 @@
         # `TakeSnapshotResponse`.
       &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 # The error result of the operation in case of failure or cancellation.
-        # different programming environments, including REST APIs and RPC APIs. It is
-        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
-        # three pieces of data: error code, error message, and error details.
-        #
-        # You can find out more about this error model and how to work with it in the
-        # [API Design Guide](https://cloud.google.com/apis/design/errors).
-      &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;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.
-    },
   }</pre>
 </div>
 
@@ -229,6 +229,27 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
+    &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
+        # different programming environments, including REST APIs and RPC APIs. It is
+        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+        # three pieces of data: error code, error message, and error details.
+        #
+        # You can find out more about this error model and how to work with it in the
+        # [API Design Guide](https://cloud.google.com/apis/design/errors).
+      &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;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;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
@@ -248,27 +269,6 @@
         # `TakeSnapshotResponse`.
       &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 # The error result of the operation in case of failure or cancellation.
-        # different programming environments, including REST APIs and RPC APIs. It is
-        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
-        # three pieces of data: error code, error message, and error details.
-        #
-        # You can find out more about this error model and how to work with it in the
-        # [API Design Guide](https://cloud.google.com/apis/design/errors).
-      &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;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.
-    },
   }</pre>
 </div>
 
@@ -308,6 +308,27 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
+    &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
+        # different programming environments, including REST APIs and RPC APIs. It is
+        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+        # three pieces of data: error code, error message, and error details.
+        #
+        # You can find out more about this error model and how to work with it in the
+        # [API Design Guide](https://cloud.google.com/apis/design/errors).
+      &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;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;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
@@ -327,27 +348,6 @@
         # `TakeSnapshotResponse`.
       &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 # The error result of the operation in case of failure or cancellation.
-        # different programming environments, including REST APIs and RPC APIs. It is
-        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
-        # three pieces of data: error code, error message, and error details.
-        #
-        # You can find out more about this error model and how to work with it in the
-        # [API Design Guide](https://cloud.google.com/apis/design/errors).
-      &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;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.
-    },
   }</pre>
 </div>
 
@@ -388,6 +388,27 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
+    &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
+        # different programming environments, including REST APIs and RPC APIs. It is
+        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+        # three pieces of data: error code, error message, and error details.
+        #
+        # You can find out more about this error model and how to work with it in the
+        # [API Design Guide](https://cloud.google.com/apis/design/errors).
+      &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;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;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
@@ -407,27 +428,6 @@
         # `TakeSnapshotResponse`.
       &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 # The error result of the operation in case of failure or cancellation.
-        # different programming environments, including REST APIs and RPC APIs. It is
-        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
-        # three pieces of data: error code, error message, and error details.
-        #
-        # You can find out more about this error model and how to work with it in the
-        # [API Design Guide](https://cloud.google.com/apis/design/errors).
-      &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;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.
-    },
   }</pre>
 </div>
 
@@ -492,6 +492,19 @@
               # Includes detailed information about a field that have changed with
               # applicable advice about potential consequences for the change, such as
               # backwards-incompatibility.
+            &quot;changeType&quot;: &quot;A String&quot;, # The type for this change, either ADDED, REMOVED, or MODIFIED.
+            &quot;newValue&quot;: &quot;A String&quot;, # Value of the changed object in the new Service configuration,
+                # in JSON format. This field will not be populated if ChangeType == REMOVED.
+            &quot;advices&quot;: [ # Collection of advice provided for this change, useful for determining the
+                # possible impact of this change.
+              { # Generated advice about this change, used for providing more
+                  # information about how a change will affect the existing service.
+                &quot;description&quot;: &quot;A String&quot;, # Useful description for why this advice was applied and what actions should
+                    # be taken to mitigate any implied risks.
+              },
+            ],
+            &quot;oldValue&quot;: &quot;A String&quot;, # Value of the changed object in the old Service configuration,
+                # in JSON format. This field will not be populated if ChangeType == ADDED.
             &quot;element&quot;: &quot;A String&quot;, # Object hierarchy path to the change, with levels separated by a &#x27;.&#x27;
                 # character. For repeated fields, an applicable unique identifier field is
                 # used for the index (usually selector, name, or id). For maps, the term
@@ -501,34 +514,21 @@
                 # - visibility.rules[selector==&quot;google.LibraryService.ListBooks&quot;].restriction
                 # - quota.metric_rules[selector==&quot;google&quot;].metric_costs[key==&quot;reads&quot;].value
                 # - logging.producer_destinations[0]
-            &quot;oldValue&quot;: &quot;A String&quot;, # Value of the changed object in the old Service configuration,
-                # in JSON format. This field will not be populated if ChangeType == ADDED.
-            &quot;advices&quot;: [ # Collection of advice provided for this change, useful for determining the
-                # possible impact of this change.
-              { # Generated advice about this change, used for providing more
-                  # information about how a change will affect the existing service.
-                &quot;description&quot;: &quot;A String&quot;, # Useful description for why this advice was applied and what actions should
-                    # be taken to mitigate any implied risks.
-              },
-            ],
-            &quot;newValue&quot;: &quot;A String&quot;, # Value of the changed object in the new Service configuration,
-                # in JSON format. This field will not be populated if ChangeType == REMOVED.
-            &quot;changeType&quot;: &quot;A String&quot;, # The type for this change, either ADDED, REMOVED, or MODIFIED.
           },
         ],
       },
     ],
-    &quot;id&quot;: &quot;A String&quot;, # ID of the service configuration this report belongs to.
+    &quot;serviceName&quot;: &quot;A String&quot;, # Name of the service this report belongs to.
     &quot;diagnostics&quot;: [ # Errors / Linter warnings associated with the service definition this
         # report
         # belongs to.
       { # Represents a diagnostic message (error or warning)
-        &quot;kind&quot;: &quot;A String&quot;, # The kind of diagnostic information provided.
         &quot;message&quot;: &quot;A String&quot;, # Message describing the error or warning.
         &quot;location&quot;: &quot;A String&quot;, # File name and line number of the error or warning.
+        &quot;kind&quot;: &quot;A String&quot;, # The kind of diagnostic information provided.
       },
     ],
-    &quot;serviceName&quot;: &quot;A String&quot;, # Name of the service this report belongs to.
+    &quot;id&quot;: &quot;A String&quot;, # ID of the service configuration this report belongs to.
   }</pre>
 </div>
 
@@ -550,9 +550,9 @@
 
     { # The full representation of a Service that is managed by
       # Google Service Management.
-    &quot;producerProjectId&quot;: &quot;A String&quot;, # ID of the project that produces and owns this service.
     &quot;serviceName&quot;: &quot;A String&quot;, # The name of the service. See the [overview](/service-management/overview)
         # for naming requirements.
+    &quot;producerProjectId&quot;: &quot;A String&quot;, # ID of the project that produces and owns this service.
   }</pre>
 </div>
 
@@ -600,131 +600,70 @@
       #       - selector: &quot;*&quot;
       #         requirements:
       #           provider_id: google_calendar_auth
-    &quot;monitoring&quot;: { # Monitoring configuration of the service. # Monitoring configuration.
-        #
-        # The example below shows how to configure monitored resources and metrics
-        # for monitoring. In the example, a monitored resource and two metrics are
-        # defined. The `library.googleapis.com/book/returned_count` metric is sent
-        # to both producer and consumer projects, whereas the
-        # `library.googleapis.com/book/overdue_count` metric is only sent to the
-        # consumer project.
-        #
-        #     monitored_resources:
-        #     - type: library.googleapis.com/branch
-        #       labels:
-        #       - key: /city
-        #         description: The city where the library branch is located in.
-        #       - key: /name
-        #         description: The name of the branch.
-        #     metrics:
-        #     - name: library.googleapis.com/book/returned_count
-        #       metric_kind: DELTA
-        #       value_type: INT64
-        #       labels:
-        #       - key: /customer_id
-        #     - name: library.googleapis.com/book/overdue_count
-        #       metric_kind: GAUGE
-        #       value_type: INT64
-        #       labels:
-        #       - key: /customer_id
-        #     monitoring:
-        #       producer_destinations:
-        #       - monitored_resource: library.googleapis.com/branch
-        #         metrics:
-        #         - library.googleapis.com/book/returned_count
-        #       consumer_destinations:
-        #       - monitored_resource: library.googleapis.com/branch
-        #         metrics:
-        #         - library.googleapis.com/book/returned_count
-        #         - library.googleapis.com/book/overdue_count
-      &quot;consumerDestinations&quot;: [ # Monitoring configurations for sending metrics to the consumer project.
-          # There can be multiple consumer destinations. A monitored resouce 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 resouce 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;control&quot;: { # Selects and configures the service controller used by the service.  The # Configuration for the service control plane.
+        # service controller handles features like abuse, quota, billing, logging,
+        # monitoring, etc.
+      &quot;environment&quot;: &quot;A String&quot;, # The service control environment to use. If empty, no control plane
+          # feature (like quota and billing) will be enabled.
     },
-    &quot;systemTypes&quot;: [ # A list of all proto message types included in this API service.
-        # It serves similar purpose as [google.api.Service.types], except that
-        # these types are not needed by user-defined APIs. Therefore, they will not
-        # show up in the generated discovery doc. This field should only be used
-        # to define system APIs in ESF.
+    &quot;types&quot;: [ # A list of all proto message types included in this API service.
+        # Types referenced directly or indirectly by the `apis` are
+        # automatically included.  Messages which are not referenced but
+        # shall be included, such as types used by the `google.protobuf.Any` type,
+        # should be listed here by name. Example:
+        #
+        #     types:
+        #     - name: google.protobuf.Int32
       { # A protocol buffer message type.
-        &quot;options&quot;: [ # The protocol buffer options.
-          { # 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;fields&quot;: [ # The list of fields.
           { # A single field of a message type.
-            &quot;defaultValue&quot;: &quot;A String&quot;, # The string value of the default value of this field. Proto2 syntax only.
-            &quot;name&quot;: &quot;A String&quot;, # The field name.
-            &quot;typeUrl&quot;: &quot;A String&quot;, # The field type URL, without the scheme, for message or enumeration
-                # types. Example: `&quot;type.googleapis.com/google.protobuf.Timestamp&quot;`.
             &quot;number&quot;: 42, # The field number.
+            &quot;name&quot;: &quot;A String&quot;, # The field name.
             &quot;kind&quot;: &quot;A String&quot;, # The field type.
             &quot;jsonName&quot;: &quot;A String&quot;, # The field JSON name.
+            &quot;cardinality&quot;: &quot;A String&quot;, # The field cardinality.
             &quot;options&quot;: [ # The protocol buffer options.
               { # 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;defaultValue&quot;: &quot;A String&quot;, # The string value of the default value of this field. Proto2 syntax only.
+            &quot;packed&quot;: True or False, # Whether to use alternative packed wire representation.
             &quot;oneofIndex&quot;: 42, # The index of the field type in `Type.oneofs`, for message or enumeration
                 # types. The first type has index 1; zero means the type is not in the list.
-            &quot;packed&quot;: True or False, # Whether to use alternative packed wire representation.
-            &quot;cardinality&quot;: &quot;A String&quot;, # The field cardinality.
+            &quot;typeUrl&quot;: &quot;A String&quot;, # The field type URL, without the scheme, for message or enumeration
+                # types. Example: `&quot;type.googleapis.com/google.protobuf.Timestamp&quot;`.
           },
         ],
-        &quot;name&quot;: &quot;A String&quot;, # The fully qualified message name.
         &quot;oneofs&quot;: [ # The list of types appearing in `oneof` definitions in this type.
           &quot;A String&quot;,
         ],
+        &quot;name&quot;: &quot;A String&quot;, # The fully qualified message name.
+        &quot;options&quot;: [ # The protocol buffer options.
+          { # 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;syntax&quot;: &quot;A String&quot;, # The source syntax.
         &quot;sourceContext&quot;: { # `SourceContext` represents information about the source of a # The source context.
             # protobuf element, like the file in which it is defined.
@@ -733,138 +672,10 @@
         },
       },
     ],
-    &quot;producerProjectId&quot;: &quot;A String&quot;, # The Google project that owns this service.
-    &quot;quota&quot;: { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
-        # usage.
-        #
-        # The metric based quota configuration works this way:
-        # - The service configuration defines a set of metrics.
-        # - For API calls, the quota.metric_rules maps methods to metrics with
-        #   corresponding costs.
-        # - The quota.limits defines limits on the metrics, which will be used for
-        #   quota checks at runtime.
-        #
-        # An example quota configuration in yaml format:
-        #
-        #    quota:
-        #      limits:
-        #
-        #      - name: apiWriteQpsPerProject
-        #        metric: library.googleapis.com/write_calls
-        #        unit: &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
-        #
-      &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;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;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;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;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;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;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;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;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;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;sourceInfo&quot;: { # Source information used to create a Service Config # Output only. The source information for this configuration if available.
+      &quot;sourceFiles&quot;: [ # All files used during config generation.
+        {
+          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
         },
       ],
     },
@@ -872,122 +683,7 @@
         # service, such as `calendar.googleapis.com`. The service name
         # typically goes through DNS verification to make sure the owner
         # of the service also owns the DNS name.
-    &quot;billing&quot;: { # Billing related configuration of the service. # Billing configuration.
-        #
-        # The following example shows how to configure monitored resources and metrics
-        # for billing, `consumer_destinations` is the only supported destination and
-        # the monitored resources need at least one label key
-        # `cloud.googleapis.com/location` to indicate the location of the billing
-        # usage, using different monitored resources between monitoring and billing is
-        # recommended so they can be evolved independently:
-        #
-        #
-        #     monitored_resources:
-        #     - type: library.googleapis.com/billing_branch
-        #       labels:
-        #       - key: cloud.googleapis.com/location
-        #         description: |
-        #           Predefined label to support billing location restriction.
-        #       - key: city
-        #         description: |
-        #           Custom label to define the city where the library branch is located
-        #           in.
-        #       - key: name
-        #         description: Custom label to define the name of the library branch.
-        #     metrics:
-        #     - name: library.googleapis.com/book/borrowed_count
-        #       metric_kind: DELTA
-        #       value_type: INT64
-        #       unit: &quot;1&quot;
-        #     billing:
-        #       consumer_destinations:
-        #       - monitored_resource: library.googleapis.com/billing_branch
-        #         metrics:
-        #         - library.googleapis.com/book/borrowed_count
-      &quot;consumerDestinations&quot;: [ # Billing configurations for sending metrics to the consumer project.
-          # There can be multiple consumer destinations per service, each one must have
-          # a different monitored resource type. A metric can be used in at most
-          # one consumer destination.
-        { # Configuration of a specific billing destination (Currently only support
-            # bill against 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;: [ # Names of the metrics to report to this billing destination.
-              # Each name must be defined in Service.metrics section.
-            &quot;A String&quot;,
-          ],
-        },
-      ],
-    },
-    &quot;customError&quot;: { # Customize service error responses.  For example, list any service # Custom error configuration.
-        # specific protobuf types that can appear in error detail lists of
-        # error responses.
-        #
-        # Example:
-        #
-        #     custom_error:
-        #       types:
-        #       - google.foo.v1.CustomError
-        #       - google.foo.v1.AnotherError
-      &quot;rules&quot;: [ # The list of custom error rules that apply to individual API messages.
-          #
-          # **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
-        { # A custom error rule.
-          &quot;isErrorType&quot;: True or False, # Mark this message as possible payload in error response.  Otherwise,
-              # objects of this type will be filtered when they appear in error payload.
-          &quot;selector&quot;: &quot;A String&quot;, # Selects messages to which this rule applies.
-              #
-              # Refer to selector for syntax details.
-        },
-      ],
-      &quot;types&quot;: [ # The list of custom error detail types, e.g. &#x27;google.foo.v1.CustomError&#x27;.
-        &quot;A String&quot;,
-      ],
-    },
     &quot;title&quot;: &quot;A String&quot;, # The product title for this service.
-    &quot;endpoints&quot;: [ # Configuration for network endpoints.  If this is empty, then an endpoint
-        # with the same name as the service is automatically generated to service all
-        # defined APIs.
-      { # `Endpoint` describes a network endpoint that serves a set of APIs.
-          # A service may expose any number of endpoints, and all endpoints share the
-          # same service configuration, such as quota configuration and monitoring
-          # configuration.
-          #
-          # Example service configuration:
-          #
-          #     name: library-example.googleapis.com
-          #     endpoints:
-          #       # Below entry makes &#x27;google.example.library.v1.Library&#x27;
-          #       # API be served from endpoint address library-example.googleapis.com.
-          #       # It also allows HTTP OPTIONS calls to be passed to the backend, for
-          #       # it to decide whether the subsequent cross-origin request is
-          #       # allowed to proceed.
-          #     - name: library-example.googleapis.com
-          #       allow_cors: true
-        &quot;aliases&quot;: [ # DEPRECATED: This field is no longer supported. Instead of using aliases,
-            # please specify multiple google.api.Endpoint for each of the intended
-            # aliases.
-            #
-            # Additional names that this endpoint will be hosted on.
-          &quot;A String&quot;,
-        ],
-        &quot;features&quot;: [ # The list of features enabled on this endpoint.
-          &quot;A String&quot;,
-        ],
-        &quot;allowCors&quot;: True or False, # Allowing
-            # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
-            # cross-domain traffic, would allow the backends served from this endpoint to
-            # receive and respond to HTTP OPTIONS requests. The response will be used by
-            # the browser to determine whether the subsequent cross-origin request is
-            # allowed to proceed.
-        &quot;name&quot;: &quot;A String&quot;, # The canonical name of this endpoint.
-        &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;logs&quot;: [ # Defines the logs used by this service.
       { # A description of a log type. Example in YAML format:
           #
@@ -1001,21 +697,508 @@
             # Runtime requests that contain labels not specified here are
             # considered invalid.
           { # A description of a 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;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;name&quot;: &quot;A String&quot;, # The name of the log. It must be less than 512 characters long and can
-            # include the following characters: upper- and lower-case alphanumeric
-            # characters [A-Za-z0-9], and punctuation characters including
-            # slash, underscore, hyphen, period [/_-.].
         &quot;description&quot;: &quot;A String&quot;, # A human-readable description of this log. This information appears in
             # the documentation and can contain details.
         &quot;displayName&quot;: &quot;A String&quot;, # The human-readable name for this log. This information appears on
             # the user interface and should be concise.
+        &quot;name&quot;: &quot;A String&quot;, # The name of the log. It must be less than 512 characters long and can
+            # include the following characters: upper- and lower-case alphanumeric
+            # characters [A-Za-z0-9], and punctuation characters including
+            # slash, underscore, hyphen, period [/_-.].
       },
     ],
+    &quot;metrics&quot;: [ # Defines the metrics used by this service.
+      { # Defines a metric type and its schema. Once a metric descriptor is created,
+          # deleting or altering it stops data collection and makes the metric type&#x27;s
+          # existing data unusable.
+        &quot;type&quot;: &quot;A String&quot;, # The metric type, including its DNS name prefix. The type is not
+            # URL-encoded.  All user-defined metric types have the DNS name
+            # `custom.googleapis.com` or `external.googleapis.com`.  Metric types should
+            # use a natural hierarchical grouping. For example:
+            #
+            #     &quot;custom.googleapis.com/invoice/paid/amount&quot;
+            #     &quot;external.googleapis.com/prometheus/up&quot;
+            #     &quot;appengine.googleapis.com/http/server/response_latencies&quot;
+        &quot;labels&quot;: [ # The set of labels that can be used to describe a specific
+            # instance of this metric type. For example, the
+            # `appengine.googleapis.com/http/server/response_latencies` metric
+            # type has a label for the HTTP response code, `response_code`, so
+            # you can look at latencies for successful responses or just
+            # for responses that failed.
+          { # A description of a 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;description&quot;: &quot;A String&quot;, # A human-readable description for the label.
+          },
+        ],
+        &quot;description&quot;: &quot;A String&quot;, # A detailed description of the metric, which can be used in documentation.
+        &quot;monitoredResourceTypes&quot;: [ # Read-only. If present, then a time
+            # series, which is identified partially by
+            # a metric type and a MonitoredResourceDescriptor, that is associated
+            # with this metric type can only be associated with one of the monitored
+            # resource types listed here.
+          &quot;A String&quot;,
+        ],
+        &quot;displayName&quot;: &quot;A String&quot;, # A concise name for the metric, which can be displayed in user interfaces.
+            # Use sentence case without an ending period, for example &quot;Request count&quot;.
+            # This field is optional but it is recommended to be set for any metrics
+            # associated with user-visible concepts, such as Quota.
+        &quot;metadata&quot;: { # Additional annotations that can be used to guide the usage of a metric. # Optional. Metadata which can be used to guide usage of the metric.
+          &quot;launchStage&quot;: &quot;A String&quot;, # Deprecated. Must use the MetricDescriptor.launch_stage instead.
+          &quot;ingestDelay&quot;: &quot;A String&quot;, # The delay of data points caused by ingestion. Data points older than this
+              # age are guaranteed to be ingested and available to be read, excluding
+              # data loss due to errors.
+          &quot;samplePeriod&quot;: &quot;A String&quot;, # The sampling period of metric data points. For metrics which are written
+              # periodically, consecutive data points are stored at this time interval,
+              # excluding data loss due to errors. Metrics with a higher granularity have
+              # a smaller sampling period.
+        },
+        &quot;metricKind&quot;: &quot;A String&quot;, # Whether the metric records instantaneous values, changes to a value, etc.
+            # Some combinations of `metric_kind` and `value_type` might not be supported.
+        &quot;unit&quot;: &quot;A String&quot;, # The units in which the metric value is reported. It is only applicable
+            # if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit`
+            # defines the representation of the stored metric values.
+            #
+            # Different systems may scale the values to be more easily displayed (so a
+            # value of `0.02KBy` _might_ be displayed as `20By`, and a value of
+            # `3523KBy` _might_ be displayed as `3.5MBy`). However, if the `unit` is
+            # `KBy`, then the value of the metric is always in thousands of bytes, no
+            # matter how it may be displayed..
+            #
+            # If you want a custom metric to record the exact number of CPU-seconds used
+            # by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` is
+            # `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses 12,005
+            # CPU-seconds, then the value is written as `12005`.
+            #
+            # Alternatively, if you want a custom metric to record data in a more
+            # granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is
+            # `ks{CPU}`, and then write the value `12.005` (which is `12005/1000`),
+            # or use `Kis{CPU}` and write `11.723` (which is `12005/1024`).
+            #
+            # The supported units are a subset of [The Unified Code for Units of
+            # Measure](http://unitsofmeasure.org/ucum.html) standard:
+            #
+            # **Basic units (UNIT)**
+            #
+            # * `bit`   bit
+            # * `By`    byte
+            # * `s`     second
+            # * `min`   minute
+            # * `h`     hour
+            # * `d`     day
+            #
+            # **Prefixes (PREFIX)**
+            #
+            # * `k`     kilo    (10^3)
+            # * `M`     mega    (10^6)
+            # * `G`     giga    (10^9)
+            # * `T`     tera    (10^12)
+            # * `P`     peta    (10^15)
+            # * `E`     exa     (10^18)
+            # * `Z`     zetta   (10^21)
+            # * `Y`     yotta   (10^24)
+            #
+            # * `m`     milli   (10^-3)
+            # * `u`     micro   (10^-6)
+            # * `n`     nano    (10^-9)
+            # * `p`     pico    (10^-12)
+            # * `f`     femto   (10^-15)
+            # * `a`     atto    (10^-18)
+            # * `z`     zepto   (10^-21)
+            # * `y`     yocto   (10^-24)
+            #
+            # * `Ki`    kibi    (2^10)
+            # * `Mi`    mebi    (2^20)
+            # * `Gi`    gibi    (2^30)
+            # * `Ti`    tebi    (2^40)
+            # * `Pi`    pebi    (2^50)
+            #
+            # **Grammar**
+            #
+            # The grammar also includes these connectors:
+            #
+            # * `/`    division or ratio (as an infix operator). For examples,
+            #          `kBy/{email}` or `MiBy/10ms` (although you should almost never
+            #          have `/s` in a metric `unit`; rates should always be computed at
+            #          query time from the underlying cumulative or delta value).
+            # * `.`    multiplication or composition (as an infix operator). For
+            #          examples, `GBy.d` or `k{watt}.h`.
+            #
+            # The grammar for a unit is as follows:
+            #
+            #     Expression = Component { &quot;.&quot; Component } { &quot;/&quot; Component } ;
+            #
+            #     Component = ( [ PREFIX ] UNIT | &quot;%&quot; ) [ Annotation ]
+            #               | Annotation
+            #               | &quot;1&quot;
+            #               ;
+            #
+            #     Annotation = &quot;{&quot; NAME &quot;}&quot; ;
+            #
+            # Notes:
+            #
+            # * `Annotation` is just a comment if it follows a `UNIT`. If the annotation
+            #    is used alone, then the unit is equivalent to `1`. For examples,
+            #    `{request}/s == 1/s`, `By{transmitted}/s == By/s`.
+            # * `NAME` is a sequence of non-blank printable ASCII characters not
+            #    containing `{` or `}`.
+            # * `1` represents a unitary [dimensionless
+            #    unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such
+            #    as in `1/s`. It is typically used when none of the basic units are
+            #    appropriate. For example, &quot;new users per day&quot; can be represented as
+            #    `1/d` or `{new-users}/d` (and a metric value `5` would mean &quot;5 new
+            #    users). Alternatively, &quot;thousands of page views per day&quot; would be
+            #    represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric
+            #    value of `5.3` would mean &quot;5300 page views per day&quot;).
+            # * `%` represents dimensionless value of 1/100, and annotates values giving
+            #    a percentage (so the metric values are typically in the range of 0..100,
+            #    and a metric value `3` means &quot;3 percent&quot;).
+            # * `10^2.%` indicates a metric contains a ratio, typically in the range
+            #    0..1, that will be multiplied by 100 and displayed as a percentage
+            #    (so a metric value `0.03` means &quot;3 percent&quot;).
+        &quot;launchStage&quot;: &quot;A String&quot;, # Optional. The launch stage of the metric definition.
+        &quot;valueType&quot;: &quot;A String&quot;, # Whether the measurement is an integer, a floating-point number, etc.
+            # Some combinations of `metric_kind` and `value_type` might not be supported.
+        &quot;name&quot;: &quot;A String&quot;, # The resource name of the metric descriptor.
+      },
+    ],
+    &quot;enums&quot;: [ # A list of all enum types included in this API service.  Enums
+        # referenced directly or indirectly by the `apis` are automatically
+        # included.  Enums which are not referenced but shall be included
+        # should be listed here by name. Example:
+        #
+        #     enums:
+        #     - name: google.someapi.v1.SomeEnum
+      { # Enum type definition.
+        &quot;options&quot;: [ # Protocol buffer options.
+          { # 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;, # Enum type name.
+        &quot;syntax&quot;: &quot;A String&quot;, # The source syntax.
+        &quot;sourceContext&quot;: { # `SourceContext` represents information about the source of a # The source context.
+            # protobuf element, like the file in which it is defined.
+          &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;enumvalue&quot;: [ # Enum value definitions.
+          { # Enum value definition.
+            &quot;name&quot;: &quot;A String&quot;, # Enum value name.
+            &quot;number&quot;: 42, # Enum value number.
+            &quot;options&quot;: [ # Protocol buffer options.
+              { # 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;authentication&quot;: { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
+        #
+        # 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
+      &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;oauth&quot;: { # OAuth scopes are a way to define data and permissions on data. For example, # The requirements for OAuth credentials.
+              # 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.
+            &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;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;allowWithoutCredential&quot;: True or False, # If true, the service accepts API keys without any other credential.
+          &quot;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies.
+              #
+              # Refer to selector for syntax details.
+        },
+      ],
+      &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;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;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;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;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;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;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;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;documentation&quot;: { # `Documentation` provides the information for describing a service. # Additional API documentation.
+        #
+        # 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.
+      &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;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;description&quot;: &quot;A String&quot;, # Description of the selected API(s).
+          &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;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:
+              # &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`.
+          &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 &lt;code&gt;&amp;#40;== include {path}
+              # ==&amp;#41;&lt;/code&gt; to include content from a Markdown file.
+        },
+      ],
+      &quot;summary&quot;: &quot;A String&quot;, # A short summary of what the service does. Can only be provided by
+          # plain text.
+      &quot;overview&quot;: &quot;A String&quot;, # 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.
+    },
     &quot;apis&quot;: [ # A list of API interfaces exported by this service. Only the `name` field
         # of the google.protobuf.Api needs to be provided by the configuration
         # author, as the remaining fields will be derived from the IDL during the
@@ -1033,71 +1216,25 @@
         &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;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;methods&quot;: [ # The methods of this interface, in unspecified order.
-          { # Method represents a method of an API interface.
-            &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;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;responseStreaming&quot;: True or False, # If true, the response is streamed.
-            &quot;name&quot;: &quot;A String&quot;, # The simple name of this method.
-            &quot;requestTypeUrl&quot;: &quot;A String&quot;, # A URL of the input message type.
-            &quot;requestStreaming&quot;: True or False, # If true, the request is streamed.
-            &quot;syntax&quot;: &quot;A String&quot;, # The source syntax of this method.
-          },
-        ],
-        &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;syntax&quot;: &quot;A String&quot;, # The source syntax of the service.
         &quot;sourceContext&quot;: { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
             # message.
             # protobuf element, like the file in which it is defined.
           &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;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&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.
         &quot;mixins&quot;: [ # Included interfaces. See Mixin.
           { # Declares an API Interface to be included in this interface. The including
               # interface must redeclare all the methods from the included interface, but
@@ -1182,90 +1319,209 @@
                 # are rooted.
           },
         ],
-      },
-    ],
-    &quot;types&quot;: [ # A list of all proto message types included in this API service.
-        # Types referenced directly or indirectly by the `apis` are
-        # automatically included.  Messages which are not referenced but
-        # shall be included, such as types used by the `google.protobuf.Any` type,
-        # should be listed here by name. Example:
-        #
-        #     types:
-        #     - name: google.protobuf.Int32
-      { # A protocol buffer message type.
-        &quot;options&quot;: [ # The protocol buffer options.
-          { # 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;fields&quot;: [ # The list of fields.
-          { # A single field of a message type.
-            &quot;defaultValue&quot;: &quot;A String&quot;, # The string value of the default value of this field. Proto2 syntax only.
-            &quot;name&quot;: &quot;A String&quot;, # The field name.
-            &quot;typeUrl&quot;: &quot;A String&quot;, # The field type URL, without the scheme, for message or enumeration
-                # types. Example: `&quot;type.googleapis.com/google.protobuf.Timestamp&quot;`.
-            &quot;number&quot;: 42, # The field number.
-            &quot;kind&quot;: &quot;A String&quot;, # The field type.
-            &quot;jsonName&quot;: &quot;A String&quot;, # The field JSON name.
-            &quot;options&quot;: [ # The protocol buffer options.
+        &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&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.
+        &quot;methods&quot;: [ # The methods of this interface, in unspecified order.
+          { # Method represents a method of an API interface.
+            &quot;requestTypeUrl&quot;: &quot;A String&quot;, # A URL of the input message type.
+            &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;requestStreaming&quot;: True or False, # If true, the request is streamed.
+            &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;oneofIndex&quot;: 42, # The index of the field type in `Type.oneofs`, for message or enumeration
-                # types. The first type has index 1; zero means the type is not in the list.
-            &quot;packed&quot;: True or False, # Whether to use alternative packed wire representation.
-            &quot;cardinality&quot;: &quot;A String&quot;, # The field cardinality.
+            &quot;syntax&quot;: &quot;A String&quot;, # The source syntax 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 message name.
-        &quot;oneofs&quot;: [ # The list of types appearing in `oneof` definitions in this type.
-          &quot;A String&quot;,
-        ],
-        &quot;syntax&quot;: &quot;A String&quot;, # The source syntax.
-        &quot;sourceContext&quot;: { # `SourceContext` represents information about the source of a # The source context.
-            # protobuf element, like the file in which it is defined.
-          &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;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;sourceInfo&quot;: { # Source information used to create a Service Config # Output only. The source information for this configuration if available.
-      &quot;sourceFiles&quot;: [ # All files used during config generation.
-        {
-          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+    &quot;customError&quot;: { # Customize service error responses.  For example, list any service # Custom error configuration.
+        # specific protobuf types that can appear in error detail lists of
+        # error responses.
+        #
+        # Example:
+        #
+        #     custom_error:
+        #       types:
+        #       - google.foo.v1.CustomError
+        #       - google.foo.v1.AnotherError
+      &quot;types&quot;: [ # The list of custom error detail types, e.g. &#x27;google.foo.v1.CustomError&#x27;.
+        &quot;A String&quot;,
+      ],
+      &quot;rules&quot;: [ # The list of custom error rules that apply to individual API messages.
+          #
+          # **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
+        { # A custom error rule.
+          &quot;isErrorType&quot;: True or False, # Mark this message as possible payload in error response.  Otherwise,
+              # objects of this type will be filtered when they appear in error payload.
+          &quot;selector&quot;: &quot;A String&quot;, # Selects messages to which this rule applies.
+              #
+              # Refer to selector for syntax details.
         },
       ],
     },
+    &quot;id&quot;: &quot;A String&quot;, # A unique ID for a specific instance of this message, typically assigned
+        # by the client for tracking purpose. Must be no longer than 63 characters
+        # and only lower case letters, digits, &#x27;.&#x27;, &#x27;_&#x27; and &#x27;-&#x27; are allowed. If
+        # empty, the server may choose to generate one instead.
+    &quot;usage&quot;: { # Configuration controlling usage of a service. # Configuration controlling usage of this service.
+      &quot;requirements&quot;: [ # Requirements that must be satisfied before a consumer project can use the
+          # service. Each requirement is of the form &lt;service.name&gt;/&lt;requirement-id&gt;;
+          # for example &#x27;serviceusage.googleapis.com/billing-enabled&#x27;.
+        &quot;A String&quot;,
+      ],
+      &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;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.
+        },
+      ],
+      &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;serviceIdentity&quot;: { # 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: &quot;projects/123456789&quot;
+          #         display_name: &quot;Cloud XXX Service Agent&quot;
+          #         description: &quot;Used as the identity of Cloud XXX to access resources&quot;
+        &quot;displayName&quot;: &quot;A String&quot;, # Optional. A user-specified name for the service account.
+            # Must be less than or equal to 100 UTF-8 bytes.
+        &quot;description&quot;: &quot;A String&quot;, # Optional. A user-specified opaque description of the service account.
+            # Must be less than or equal to 256 UTF-8 bytes.
+        &quot;serviceAccountParent&quot;: &quot;A String&quot;, # A service account project that hosts the service accounts.
+            #
+            # An example name would be:
+            # `projects/123456789`
+      },
+    },
+    &quot;endpoints&quot;: [ # Configuration for network endpoints.  If this is empty, then an endpoint
+        # with the same name as the service is automatically generated to service all
+        # defined APIs.
+      { # `Endpoint` describes a network endpoint that serves a set of APIs.
+          # A service may expose any number of endpoints, and all endpoints share the
+          # same service configuration, such as quota configuration and monitoring
+          # configuration.
+          #
+          # Example service configuration:
+          #
+          #     name: library-example.googleapis.com
+          #     endpoints:
+          #       # Below entry makes &#x27;google.example.library.v1.Library&#x27;
+          #       # API be served from endpoint address library-example.googleapis.com.
+          #       # It also allows HTTP OPTIONS calls to be passed to the backend, for
+          #       # it to decide whether the subsequent cross-origin request is
+          #       # allowed to proceed.
+          #     - name: library-example.googleapis.com
+          #       allow_cors: true
+        &quot;name&quot;: &quot;A String&quot;, # The canonical name of this endpoint.
+        &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;allowCors&quot;: True or False, # Allowing
+            # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
+            # cross-domain traffic, would allow the backends served from this endpoint to
+            # receive and respond to HTTP OPTIONS requests. The response will be used by
+            # the browser to determine whether the subsequent cross-origin request is
+            # allowed to proceed.
+        &quot;features&quot;: [ # The list of features enabled on this endpoint.
+          &quot;A String&quot;,
+        ],
+        &quot;aliases&quot;: [ # DEPRECATED: This field is no longer supported. Instead of using aliases,
+            # please specify multiple google.api.Endpoint for each of the intended
+            # aliases.
+            #
+            # Additional names that this endpoint will be hosted on.
+          &quot;A String&quot;,
+        ],
+      },
+    ],
+    &quot;configVersion&quot;: 42, # The semantic version of the service configuration. The config version
+        # affects the interpretation of the service configuration. For example,
+        # certain features are enabled by default for certain config versions.
+        #
+        # The latest config version is `3`.
     &quot;http&quot;: { # Defines the HTTP configuration for an API service. It contains a list of # HTTP configuration.
         # HttpRule, each specifying the mapping of an RPC method
         # to one or more HTTP REST API methods.
-      &quot;fullyDecodeReservedExpansion&quot;: True or False, # When set to true, URL path parameters will be fully URI-decoded except in
-          # cases of single segment matches in reserved expansion, where &quot;%2F&quot; will be
-          # left encoded.
-          #
-          # The default behavior is to not decode RFC 6570 reserved characters in multi
-          # segment matches.
       &quot;rules&quot;: [ # A list of HTTP configuration rules that apply to individual API methods.
           #
           # **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
@@ -1538,41 +1794,327 @@
             # If an API needs to use a JSON array for request or response body, it can map
             # the request or response body to a repeated field. However, some gRPC
             # Transcoding implementations may not support this feature.
-          &quot;delete&quot;: &quot;A String&quot;, # Maps to HTTP DELETE. Used for deleting a resource.
-          &quot;additionalBindings&quot;: [ # Additional HTTP bindings for the selector. Nested bindings must
-              # not contain an `additional_bindings` field themselves (that is,
-              # the nesting may only be one level deep).
-            # Object with schema name: HttpRule
-          ],
+          &quot;selector&quot;: &quot;A String&quot;, # Selects a method to which this rule applies.
+              #
+              # Refer to selector for syntax details.
+          &quot;put&quot;: &quot;A String&quot;, # Maps to HTTP PUT. Used for replacing a resource.
+          &quot;custom&quot;: { # A custom pattern is used for defining custom HTTP verb. # The custom pattern is used for specifying an HTTP method that is not
+              # included in the `pattern` field, such as HEAD, or &quot;*&quot; to leave the
+              # HTTP method unspecified for this rule. The wild-card rule is useful
+              # for services that provide content to Web (HTML) clients.
+            &quot;path&quot;: &quot;A String&quot;, # The path matched by this custom verb.
+            &quot;kind&quot;: &quot;A String&quot;, # The name of this custom HTTP verb.
+          },
           &quot;responseBody&quot;: &quot;A String&quot;, # Optional. The name of the response field whose value is mapped to the HTTP
               # response body. When omitted, the entire response message will be used
               # as the HTTP response body.
               #
               # NOTE: The referred field must be present at the top-level of the response
               # message type.
+          &quot;allowHalfDuplex&quot;: True or False, # When this flag is set to true, HTTP requests will be allowed to invoke a
+              # half-duplex streaming method.
+          &quot;additionalBindings&quot;: [ # Additional HTTP bindings for the selector. Nested bindings must
+              # not contain an `additional_bindings` field themselves (that is,
+              # the nesting may only be one level deep).
+            # Object with schema name: HttpRule
+          ],
+          &quot;patch&quot;: &quot;A String&quot;, # Maps to HTTP PATCH. Used for updating a resource.
+          &quot;get&quot;: &quot;A String&quot;, # Maps to HTTP GET. Used for listing and getting information about
+              # resources.
+          &quot;post&quot;: &quot;A String&quot;, # Maps to HTTP POST. Used for creating a resource or performing an action.
           &quot;body&quot;: &quot;A String&quot;, # The name of the request field whose value is mapped to the HTTP request
               # body, or `*` for mapping all request fields not captured by the path
               # pattern to the HTTP body, or omitted for not having any HTTP request body.
               #
               # NOTE: the referred field must be present at the top-level of the request
               # message type.
-          &quot;selector&quot;: &quot;A String&quot;, # Selects a method to which this rule applies.
-              #
-              # Refer to selector for syntax details.
-          &quot;post&quot;: &quot;A String&quot;, # Maps to HTTP POST. Used for creating a resource or performing an action.
-          &quot;custom&quot;: { # A custom pattern is used for defining custom HTTP verb. # The custom pattern is used for specifying an HTTP method that is not
-              # included in the `pattern` field, such as HEAD, or &quot;*&quot; to leave the
-              # HTTP method unspecified for this rule. The wild-card rule is useful
-              # for services that provide content to Web (HTML) clients.
-            &quot;kind&quot;: &quot;A String&quot;, # The name of this custom HTTP verb.
-            &quot;path&quot;: &quot;A String&quot;, # The path matched by this custom verb.
+          &quot;delete&quot;: &quot;A String&quot;, # Maps to HTTP DELETE. Used for deleting a resource.
+        },
+      ],
+      &quot;fullyDecodeReservedExpansion&quot;: True or False, # When set to true, URL path parameters will be fully URI-decoded except in
+          # cases of single segment matches in reserved expansion, where &quot;%2F&quot; will be
+          # left encoded.
+          #
+          # The default behavior is to not decode RFC 6570 reserved characters in multi
+          # segment matches.
+    },
+    &quot;billing&quot;: { # Billing related configuration of the service. # Billing configuration.
+        #
+        # The following example shows how to configure monitored resources and metrics
+        # for billing, `consumer_destinations` is the only supported destination and
+        # the monitored resources need at least one label key
+        # `cloud.googleapis.com/location` to indicate the location of the billing
+        # usage, using different monitored resources between monitoring and billing is
+        # recommended so they can be evolved independently:
+        #
+        #
+        #     monitored_resources:
+        #     - type: library.googleapis.com/billing_branch
+        #       labels:
+        #       - key: cloud.googleapis.com/location
+        #         description: |
+        #           Predefined label to support billing location restriction.
+        #       - key: city
+        #         description: |
+        #           Custom label to define the city where the library branch is located
+        #           in.
+        #       - key: name
+        #         description: Custom label to define the name of the library branch.
+        #     metrics:
+        #     - name: library.googleapis.com/book/borrowed_count
+        #       metric_kind: DELTA
+        #       value_type: INT64
+        #       unit: &quot;1&quot;
+        #     billing:
+        #       consumer_destinations:
+        #       - monitored_resource: library.googleapis.com/billing_branch
+        #         metrics:
+        #         - library.googleapis.com/book/borrowed_count
+      &quot;consumerDestinations&quot;: [ # Billing configurations for sending metrics to the consumer project.
+          # There can be multiple consumer destinations per service, each one must have
+          # a different monitored resource type. A metric can be used in at most
+          # one consumer destination.
+        { # Configuration of a specific billing destination (Currently only support
+            # bill against consumer project).
+          &quot;metrics&quot;: [ # Names of the metrics to report to this billing destination.
+              # Each name 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;systemTypes&quot;: [ # A list of all proto message types included in this API service.
+        # It serves similar purpose as [google.api.Service.types], except that
+        # these types are not needed by user-defined APIs. Therefore, they will not
+        # show up in the generated discovery doc. This field should only be used
+        # to define system APIs in ESF.
+      { # A protocol buffer message type.
+        &quot;fields&quot;: [ # The list of fields.
+          { # A single field of a message type.
+            &quot;number&quot;: 42, # The field number.
+            &quot;name&quot;: &quot;A String&quot;, # The field name.
+            &quot;kind&quot;: &quot;A String&quot;, # The field type.
+            &quot;jsonName&quot;: &quot;A String&quot;, # The field JSON name.
+            &quot;cardinality&quot;: &quot;A String&quot;, # The field cardinality.
+            &quot;options&quot;: [ # The protocol buffer options.
+              { # 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;defaultValue&quot;: &quot;A String&quot;, # The string value of the default value of this field. Proto2 syntax only.
+            &quot;packed&quot;: True or False, # Whether to use alternative packed wire representation.
+            &quot;oneofIndex&quot;: 42, # The index of the field type in `Type.oneofs`, for message or enumeration
+                # types. The first type has index 1; zero means the type is not in the list.
+            &quot;typeUrl&quot;: &quot;A String&quot;, # The field type URL, without the scheme, for message or enumeration
+                # types. Example: `&quot;type.googleapis.com/google.protobuf.Timestamp&quot;`.
           },
-          &quot;patch&quot;: &quot;A String&quot;, # Maps to HTTP PATCH. Used for updating a resource.
-          &quot;get&quot;: &quot;A String&quot;, # Maps to HTTP GET. Used for listing and getting information about
-              # resources.
-          &quot;allowHalfDuplex&quot;: True or False, # When this flag is set to true, HTTP requests will be allowed to invoke a
-              # half-duplex streaming method.
-          &quot;put&quot;: &quot;A String&quot;, # Maps to HTTP PUT. Used for replacing a resource.
+        ],
+        &quot;oneofs&quot;: [ # The list of types appearing in `oneof` definitions in this type.
+          &quot;A String&quot;,
+        ],
+        &quot;name&quot;: &quot;A String&quot;, # The fully qualified message name.
+        &quot;options&quot;: [ # The protocol buffer options.
+          { # 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;syntax&quot;: &quot;A String&quot;, # The source syntax.
+        &quot;sourceContext&quot;: { # `SourceContext` represents information about the source of a # The source context.
+            # protobuf element, like the file in which it is defined.
+          &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;logging&quot;: { # Logging configuration of the service. # Logging configuration.
+        #
+        # The following example shows how to configure logs to be sent to the
+        # producer and consumer projects. In the example, the `activity_history`
+        # log is sent to both the producer and consumer projects, whereas the
+        # `purchase_history` log is only sent to the producer project.
+        #
+        #     monitored_resources:
+        #     - type: library.googleapis.com/branch
+        #       labels:
+        #       - key: /city
+        #         description: The city where the library branch is located in.
+        #       - key: /name
+        #         description: The name of the branch.
+        #     logs:
+        #     - name: activity_history
+        #       labels:
+        #       - key: /customer_id
+        #     - name: purchase_history
+        #     logging:
+        #       producer_destinations:
+        #       - monitored_resource: library.googleapis.com/branch
+        #         logs:
+        #         - activity_history
+        #         - purchase_history
+        #       consumer_destinations:
+        #       - monitored_resource: library.googleapis.com/branch
+        #         logs:
+        #         - activity_history
+      &quot;consumerDestinations&quot;: [ # Logging configurations for sending logs to the consumer project.
+          # There can be multiple consumer destinations, each one must have a
+          # different monitored resource type. A log can be used in at most
+          # one consumer destination.
+        { # Configuration of a specific logging 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 the
+              # Service.monitored_resources section.
+          &quot;logs&quot;: [ # Names of the logs to be sent to this destination. Each name must
+              # be defined in the Service.logs section. If the log name is
+              # not a domain scoped name, it will be automatically prefixed with
+              # the service name followed by &quot;/&quot;.
+            &quot;A String&quot;,
+          ],
+        },
+      ],
+      &quot;producerDestinations&quot;: [ # Logging configurations for sending logs to the producer project.
+          # There can be multiple producer destinations, each one must have a
+          # different monitored resource type. A log can be used in at most
+          # one producer destination.
+        { # Configuration of a specific logging 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 the
+              # Service.monitored_resources section.
+          &quot;logs&quot;: [ # Names of the logs to be sent to this destination. Each name must
+              # be defined in the Service.logs section. If the log name is
+              # not a domain scoped name, it will be automatically prefixed with
+              # the service name followed by &quot;/&quot;.
+            &quot;A String&quot;,
+          ],
+        },
+      ],
+    },
+    &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;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;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;description&quot;: &quot;A String&quot;, # A human-readable description for the label.
+          },
+        ],
+        &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.
+            # The maximum length of this value is 256 characters.
+        &quot;description&quot;: &quot;A String&quot;, # Optional. A detailed description of the monitored resource type that might
+            # be used in documentation.
+        &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;monitoring&quot;: { # Monitoring configuration of the service. # Monitoring configuration.
+        #
+        # The example below shows how to configure monitored resources and metrics
+        # for monitoring. In the example, a monitored resource and two metrics are
+        # defined. The `library.googleapis.com/book/returned_count` metric is sent
+        # to both producer and consumer projects, whereas the
+        # `library.googleapis.com/book/overdue_count` metric is only sent to the
+        # consumer project.
+        #
+        #     monitored_resources:
+        #     - type: library.googleapis.com/branch
+        #       labels:
+        #       - key: /city
+        #         description: The city where the library branch is located in.
+        #       - key: /name
+        #         description: The name of the branch.
+        #     metrics:
+        #     - name: library.googleapis.com/book/returned_count
+        #       metric_kind: DELTA
+        #       value_type: INT64
+        #       labels:
+        #       - key: /customer_id
+        #     - name: library.googleapis.com/book/overdue_count
+        #       metric_kind: GAUGE
+        #       value_type: INT64
+        #       labels:
+        #       - key: /customer_id
+        #     monitoring:
+        #       producer_destinations:
+        #       - monitored_resource: library.googleapis.com/branch
+        #         metrics:
+        #         - library.googleapis.com/book/returned_count
+        #       consumer_destinations:
+        #       - monitored_resource: library.googleapis.com/branch
+        #         metrics:
+        #         - library.googleapis.com/book/returned_count
+        #         - library.googleapis.com/book/overdue_count
+      &quot;producerDestinations&quot;: [ # Monitoring configurations for sending metrics to the producer project.
+          # There can be multiple producer destinations. A monitored resouce 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;consumerDestinations&quot;: [ # Monitoring configurations for sending metrics to the consumer project.
+          # There can be multiple consumer destinations. A monitored resouce 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.
         },
       ],
     },
@@ -1621,11 +2163,11 @@
             { # Define a parameter&#x27;s name and location. The parameter may be passed as either
                 # an HTTP header or a URL query parameter, and if both are passed the behavior
                 # is implementation-dependent.
-              &quot;httpHeader&quot;: &quot;A String&quot;, # Define the HTTP header name to use for the parameter. It is case
-                  # insensitive.
               &quot;name&quot;: &quot;A String&quot;, # Define the name of the parameter, such as &quot;api_key&quot; . It is case sensitive.
               &quot;urlQueryParameter&quot;: &quot;A String&quot;, # Define the URL query parameter name to use for the parameter. It is case
                   # sensitive.
+              &quot;httpHeader&quot;: &quot;A String&quot;, # Define the HTTP header name to use for the parameter. It is case
+                  # insensitive.
             },
           ],
           &quot;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies. Use &#x27;*&#x27; to indicate all
@@ -1635,321 +2177,140 @@
         },
       ],
     },
-    &quot;backend&quot;: { # `Backend` defines the backend configuration for a service. # API backend configuration.
-      &quot;rules&quot;: [ # A list of API backend rules that apply to individual API methods.
-          #
-          # **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
-        { # A backend rule provides configuration for an individual API element.
-          &quot;protocol&quot;: &quot;A String&quot;, # The protocol used for sending a request to the backend.
-              # The supported values are &quot;http/1.1&quot; and &quot;h2&quot;.
+    &quot;quota&quot;: { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
+        # usage.
+        #
+        # The metric based quota configuration works this way:
+        # - The service configuration defines a set of metrics.
+        # - For API calls, the quota.metric_rules maps methods to metrics with
+        #   corresponding costs.
+        # - The quota.limits defines limits on the metrics, which will be used for
+        #   quota checks at runtime.
+        #
+        # An example quota configuration in yaml format:
+        #
+        #    quota:
+        #      limits:
+        #
+        #      - name: apiWriteQpsPerProject
+        #        metric: library.googleapis.com/write_calls
+        #        unit: &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
+        #
+      &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;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.
               #
-              # The default value is inferred from the scheme in the
-              # address field:
+              # To allow clients to apply overrides with no upper bound, set this to -1,
+              # indicating unlimited maximum quota.
               #
-              #    SCHEME        PROTOCOL
-              #    http://       http/1.1
-              #    https://      http/1.1
-              #    grpc://       h2
-              #    grpcs://      h2
+              # 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;.
               #
-              # For secure HTTP backends (https://) that support HTTP/2, set this field
-              # to &quot;h2&quot; for improved performance.
+              # Used by group-based quotas only.
+          &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.
               #
-              # Configuring this field to non-default values is only supported for secure
-              # HTTP backends. This field will be ignored for all other backends.
+              # 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.
               #
-              # See
-              # https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids
-              # for more details on the supported values.
+              # 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;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;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;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;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;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;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;operationDeadline&quot;: 3.14, # The number of seconds to wait for the completion of a long running
-              # operation. The default is no deadline.
-          &quot;deadline&quot;: 3.14, # The number of seconds to wait for a response from a request. The default
-              # varies based on the request protocol and deployment environment.
-          &quot;minDeadline&quot;: 3.14, # Minimum deadline in seconds needed for this method. Calls having deadline
-              # value lower than this will be rejected.
-          &quot;address&quot;: &quot;A String&quot;, # The address of the API backend.
-              #
-              # The scheme is used to determine the backend protocol and security.
-              # The following schemes are accepted:
-              #
-              #    SCHEME        PROTOCOL    SECURITY
-              #    http://       HTTP        None
-              #    https://      HTTP        TLS
-              #    grpc://       gRPC        None
-              #    grpcs://      gRPC        TLS
-              #
-              # It is recommended to explicitly include a scheme. Leaving out the scheme
-              # may cause constrasting behaviors across platforms.
-              #
-              # If the port is unspecified, the default is:
-              # - 80 for schemes without TLS
-              # - 443 for schemes with TLS
-              #
-              # For HTTP backends, use protocol
-              # to specify the protocol version.
-          &quot;pathTranslation&quot;: &quot;A String&quot;,
-          &quot;jwtAudience&quot;: &quot;A String&quot;, # The JWT audience is used when generating a JWT ID token for the backend.
-              # This ID token will be added in the HTTP &quot;authorization&quot; header, and sent
-              # to the backend.
-          &quot;disableAuth&quot;: True or False, # When disable_auth is true, a JWT ID token won&#x27;t be generated and the
-              # original &quot;Authorization&quot; HTTP header will be preserved. If the header is
-              # used to carry the original token and is expected by the backend, this
-              # field must be set to true to preserve the header.
-          &quot;renameTo&quot;: &quot;A String&quot;, # Unimplemented. Do not use.
-              #
-              # The new name the selected proto elements should be renamed to.
-              #
-              # The package, the service and the method can all be renamed.
-              # The backend server should implement the renamed proto. However, clients
-              # should call the original method, and ESF routes the traffic to the renamed
-              # method.
-              #
-              # HTTP clients should call the URL mapped to the original method.
-              # gRPC and Stubby clients should call the original method with package name.
-              #
-              # For legacy reasons, ESF allows Stubby clients to call with the
-              # short name (without the package name). However, for API Versioning(or
-              # multiple methods mapped to the same short name), all Stubby clients must
-              # call the method&#x27;s full name with the package name, otherwise the first one
-              # (selector) wins.
-              #
-              # If this `rename_to` is specified with a trailing `*`, the `selector` must
-              # be specified with a trailing `*` as well. The all element short names
-              # matched by the `*` in the selector will be kept in the `rename_to`.
-              #
-              # For example,
-              #     rename_rules:
-              #     - selector: |-
-              #         google.example.library.v1.*
-              #       rename_to: google.example.library.*
-              #
-              # The selector matches `google.example.library.v1.Library.CreateShelf` and
-              # `google.example.library.v1.Library.CreateBook`, they will be renamed to
-              # `google.example.library.Library.CreateShelf` and
-              # `google.example.library.Library.CreateBook`. It essentially renames the
-              # proto package name section of the matched proto service and methods.
         },
       ],
     },
-    &quot;documentation&quot;: { # `Documentation` provides the information for describing a service. # Additional API documentation.
-        #
-        # 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.
-      &quot;documentationRootUrl&quot;: &quot;A String&quot;, # The URL to the root of documentation.
-      &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;summary&quot;: &quot;A String&quot;, # A short summary of what the service does. Can only be provided by
-          # plain text.
-      &quot;overview&quot;: &quot;A String&quot;, # 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.
-      &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:
-              # &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`.
-          &quot;content&quot;: &quot;A String&quot;, # 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.
-          &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;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;logging&quot;: { # Logging configuration of the service. # Logging configuration.
-        #
-        # The following example shows how to configure logs to be sent to the
-        # producer and consumer projects. In the example, the `activity_history`
-        # log is sent to both the producer and consumer projects, whereas the
-        # `purchase_history` log is only sent to the producer project.
-        #
-        #     monitored_resources:
-        #     - type: library.googleapis.com/branch
-        #       labels:
-        #       - key: /city
-        #         description: The city where the library branch is located in.
-        #       - key: /name
-        #         description: The name of the branch.
-        #     logs:
-        #     - name: activity_history
-        #       labels:
-        #       - key: /customer_id
-        #     - name: purchase_history
-        #     logging:
-        #       producer_destinations:
-        #       - monitored_resource: library.googleapis.com/branch
-        #         logs:
-        #         - activity_history
-        #         - purchase_history
-        #       consumer_destinations:
-        #       - monitored_resource: library.googleapis.com/branch
-        #         logs:
-        #         - activity_history
-      &quot;producerDestinations&quot;: [ # Logging configurations for sending logs to the producer project.
-          # There can be multiple producer destinations, each one must have a
-          # different monitored resource type. A log can be used in at most
-          # one producer destination.
-        { # Configuration of a specific logging destination (the producer project
-            # or the consumer project).
-          &quot;logs&quot;: [ # Names of the logs to be sent to this destination. Each name must
-              # be defined in the Service.logs section. If the log name is
-              # not a domain scoped name, it will be automatically prefixed with
-              # the service name followed by &quot;/&quot;.
-            &quot;A String&quot;,
-          ],
-          &quot;monitoredResource&quot;: &quot;A String&quot;, # The monitored resource type. The type must be defined in the
-              # Service.monitored_resources section.
-        },
-      ],
-      &quot;consumerDestinations&quot;: [ # Logging configurations for sending logs to the consumer project.
-          # There can be multiple consumer destinations, each one must have a
-          # different monitored resource type. A log can be used in at most
-          # one consumer destination.
-        { # Configuration of a specific logging destination (the producer project
-            # or the consumer project).
-          &quot;logs&quot;: [ # Names of the logs to be sent to this destination. Each name must
-              # be defined in the Service.logs section. If the log name is
-              # not a domain scoped name, it will be automatically prefixed with
-              # the service name followed by &quot;/&quot;.
-            &quot;A String&quot;,
-          ],
-          &quot;monitoredResource&quot;: &quot;A String&quot;, # The monitored resource type. The type must be defined in the
-              # Service.monitored_resources section.
-        },
-      ],
-    },
-    &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;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;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;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;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.
-            # The maximum length of this value is 256 characters.
-      },
-    ],
     &quot;context&quot;: { # `Context` defines which contexts an API requests. # Context configuration.
         #
         # Example:
@@ -1991,9 +2352,6 @@
           # **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
         { # A context rule provides information about the context for an individual API
             # element.
-          &quot;requested&quot;: [ # A list of full type names of requested contexts.
-            &quot;A String&quot;,
-          ],
           &quot;allowedRequestExtensions&quot;: [ # A list of full type names or extension IDs of extensions allowed in grpc
               # side channel from client to backend.
             &quot;A String&quot;,
@@ -2005,473 +2363,82 @@
           &quot;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies.
               #
               # Refer to selector for syntax details.
+          &quot;requested&quot;: [ # A list of full type names of requested contexts.
+            &quot;A String&quot;,
+          ],
           &quot;provided&quot;: [ # A list of full type names of provided contexts.
             &quot;A String&quot;,
           ],
         },
       ],
     },
-    &quot;enums&quot;: [ # A list of all enum types included in this API service.  Enums
-        # referenced directly or indirectly by the `apis` are automatically
-        # included.  Enums which are not referenced but shall be included
-        # should be listed here by name. Example:
-        #
-        #     enums:
-        #     - name: google.someapi.v1.SomeEnum
-      { # Enum type definition.
-        &quot;name&quot;: &quot;A String&quot;, # Enum type name.
-        &quot;enumvalue&quot;: [ # Enum value definitions.
-          { # Enum value definition.
-            &quot;name&quot;: &quot;A String&quot;, # Enum value name.
-            &quot;options&quot;: [ # Protocol buffer options.
-              { # 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;number&quot;: 42, # Enum value number.
-          },
-        ],
-        &quot;options&quot;: [ # Protocol buffer options.
-          { # 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;sourceContext&quot;: { # `SourceContext` represents information about the source of a # The source context.
-            # protobuf element, like the file in which it is defined.
-          &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;syntax&quot;: &quot;A String&quot;, # The source syntax.
-      },
-    ],
-    &quot;id&quot;: &quot;A String&quot;, # A unique ID for a specific instance of this message, typically assigned
-        # by the client for tracking purpose. Must be no longer than 63 characters
-        # and only lower case letters, digits, &#x27;.&#x27;, &#x27;_&#x27; and &#x27;-&#x27; are allowed. If
-        # empty, the server may choose to generate one instead.
-    &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;rules&quot;: [ # A list of usage rules that apply to individual API methods.
+    &quot;producerProjectId&quot;: &quot;A String&quot;, # The Google project that owns this service.
+    &quot;backend&quot;: { # `Backend` defines the backend configuration for a service. # API backend configuration.
+      &quot;rules&quot;: [ # A list of API backend 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;selector&quot;: &quot;A String&quot;, # Selects the methods to which this rule applies. Use &#x27;*&#x27; to indicate all
-              # methods in all APIs.
+        { # A backend rule provides configuration for an individual API element.
+          &quot;operationDeadline&quot;: 3.14, # The number of seconds to wait for the completion of a long running
+              # operation. The default is no deadline.
+          &quot;minDeadline&quot;: 3.14, # Minimum deadline in seconds needed for this method. Calls having deadline
+              # value lower than this will be rejected.
+          &quot;address&quot;: &quot;A String&quot;, # The address of the API backend.
               #
-              # Refer to selector for syntax details.
-          &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.
-          &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;serviceIdentity&quot;: { # 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: &quot;projects/123456789&quot;
-          #         display_name: &quot;Cloud XXX Service Agent&quot;
-          #         description: &quot;Used as the identity of Cloud XXX to access resources&quot;
-        &quot;serviceAccountParent&quot;: &quot;A String&quot;, # A service account project that hosts the service accounts.
-            #
-            # An example name would be:
-            # `projects/123456789`
-        &quot;displayName&quot;: &quot;A String&quot;, # Optional. A user-specified name for the service account.
-            # Must be less than or equal to 100 UTF-8 bytes.
-        &quot;description&quot;: &quot;A String&quot;, # Optional. A user-specified opaque description of the service account.
-            # Must be less than or equal to 256 UTF-8 bytes.
-      },
-      &quot;requirements&quot;: [ # Requirements that must be satisfied before a consumer project can use the
-          # service. Each requirement is of the form &lt;service.name&gt;/&lt;requirement-id&gt;;
-          # for example &#x27;serviceusage.googleapis.com/billing-enabled&#x27;.
-        &quot;A String&quot;,
-      ],
-    },
-    &quot;metrics&quot;: [ # Defines the metrics used by this service.
-      { # Defines a metric type and its schema. Once a metric descriptor is created,
-          # deleting or altering it stops data collection and makes the metric type&#x27;s
-          # existing data unusable.
-        &quot;name&quot;: &quot;A String&quot;, # The resource name of the metric descriptor.
-        &quot;type&quot;: &quot;A String&quot;, # The metric type, including its DNS name prefix. The type is not
-            # URL-encoded.  All user-defined metric types have the DNS name
-            # `custom.googleapis.com` or `external.googleapis.com`.  Metric types should
-            # use a natural hierarchical grouping. For example:
-            #
-            #     &quot;custom.googleapis.com/invoice/paid/amount&quot;
-            #     &quot;external.googleapis.com/prometheus/up&quot;
-            #     &quot;appengine.googleapis.com/http/server/response_latencies&quot;
-        &quot;metadata&quot;: { # Additional annotations that can be used to guide the usage of a metric. # Optional. Metadata which can be used to guide usage of the metric.
-          &quot;ingestDelay&quot;: &quot;A String&quot;, # The delay of data points caused by ingestion. Data points older than this
-              # age are guaranteed to be ingested and available to be read, excluding
-              # data loss due to errors.
-          &quot;launchStage&quot;: &quot;A String&quot;, # Deprecated. Must use the MetricDescriptor.launch_stage instead.
-          &quot;samplePeriod&quot;: &quot;A String&quot;, # The sampling period of metric data points. For metrics which are written
-              # periodically, consecutive data points are stored at this time interval,
-              # excluding data loss due to errors. Metrics with a higher granularity have
-              # a smaller sampling period.
-        },
-        &quot;valueType&quot;: &quot;A String&quot;, # Whether the measurement is an integer, a floating-point number, etc.
-            # Some combinations of `metric_kind` and `value_type` might not be supported.
-        &quot;metricKind&quot;: &quot;A String&quot;, # Whether the metric records instantaneous values, changes to a value, etc.
-            # Some combinations of `metric_kind` and `value_type` might not be supported.
-        &quot;description&quot;: &quot;A String&quot;, # A detailed description of the metric, which can be used in documentation.
-        &quot;displayName&quot;: &quot;A String&quot;, # A concise name for the metric, which can be displayed in user interfaces.
-            # Use sentence case without an ending period, for example &quot;Request count&quot;.
-            # This field is optional but it is recommended to be set for any metrics
-            # associated with user-visible concepts, such as Quota.
-        &quot;unit&quot;: &quot;A String&quot;, # The units in which the metric value is reported. It is only applicable
-            # if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit`
-            # defines the representation of the stored metric values.
-            #
-            # Different systems may scale the values to be more easily displayed (so a
-            # value of `0.02KBy` _might_ be displayed as `20By`, and a value of
-            # `3523KBy` _might_ be displayed as `3.5MBy`). However, if the `unit` is
-            # `KBy`, then the value of the metric is always in thousands of bytes, no
-            # matter how it may be displayed..
-            #
-            # If you want a custom metric to record the exact number of CPU-seconds used
-            # by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` is
-            # `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses 12,005
-            # CPU-seconds, then the value is written as `12005`.
-            #
-            # Alternatively, if you want a custom metric to record data in a more
-            # granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is
-            # `ks{CPU}`, and then write the value `12.005` (which is `12005/1000`),
-            # or use `Kis{CPU}` and write `11.723` (which is `12005/1024`).
-            #
-            # The supported units are a subset of [The Unified Code for Units of
-            # Measure](http://unitsofmeasure.org/ucum.html) standard:
-            #
-            # **Basic units (UNIT)**
-            #
-            # * `bit`   bit
-            # * `By`    byte
-            # * `s`     second
-            # * `min`   minute
-            # * `h`     hour
-            # * `d`     day
-            #
-            # **Prefixes (PREFIX)**
-            #
-            # * `k`     kilo    (10^3)
-            # * `M`     mega    (10^6)
-            # * `G`     giga    (10^9)
-            # * `T`     tera    (10^12)
-            # * `P`     peta    (10^15)
-            # * `E`     exa     (10^18)
-            # * `Z`     zetta   (10^21)
-            # * `Y`     yotta   (10^24)
-            #
-            # * `m`     milli   (10^-3)
-            # * `u`     micro   (10^-6)
-            # * `n`     nano    (10^-9)
-            # * `p`     pico    (10^-12)
-            # * `f`     femto   (10^-15)
-            # * `a`     atto    (10^-18)
-            # * `z`     zepto   (10^-21)
-            # * `y`     yocto   (10^-24)
-            #
-            # * `Ki`    kibi    (2^10)
-            # * `Mi`    mebi    (2^20)
-            # * `Gi`    gibi    (2^30)
-            # * `Ti`    tebi    (2^40)
-            # * `Pi`    pebi    (2^50)
-            #
-            # **Grammar**
-            #
-            # The grammar also includes these connectors:
-            #
-            # * `/`    division or ratio (as an infix operator). For examples,
-            #          `kBy/{email}` or `MiBy/10ms` (although you should almost never
-            #          have `/s` in a metric `unit`; rates should always be computed at
-            #          query time from the underlying cumulative or delta value).
-            # * `.`    multiplication or composition (as an infix operator). For
-            #          examples, `GBy.d` or `k{watt}.h`.
-            #
-            # The grammar for a unit is as follows:
-            #
-            #     Expression = Component { &quot;.&quot; Component } { &quot;/&quot; Component } ;
-            #
-            #     Component = ( [ PREFIX ] UNIT | &quot;%&quot; ) [ Annotation ]
-            #               | Annotation
-            #               | &quot;1&quot;
-            #               ;
-            #
-            #     Annotation = &quot;{&quot; NAME &quot;}&quot; ;
-            #
-            # Notes:
-            #
-            # * `Annotation` is just a comment if it follows a `UNIT`. If the annotation
-            #    is used alone, then the unit is equivalent to `1`. For examples,
-            #    `{request}/s == 1/s`, `By{transmitted}/s == By/s`.
-            # * `NAME` is a sequence of non-blank printable ASCII characters not
-            #    containing `{` or `}`.
-            # * `1` represents a unitary [dimensionless
-            #    unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such
-            #    as in `1/s`. It is typically used when none of the basic units are
-            #    appropriate. For example, &quot;new users per day&quot; can be represented as
-            #    `1/d` or `{new-users}/d` (and a metric value `5` would mean &quot;5 new
-            #    users). Alternatively, &quot;thousands of page views per day&quot; would be
-            #    represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric
-            #    value of `5.3` would mean &quot;5300 page views per day&quot;).
-            # * `%` represents dimensionless value of 1/100, and annotates values giving
-            #    a percentage (so the metric values are typically in the range of 0..100,
-            #    and a metric value `3` means &quot;3 percent&quot;).
-            # * `10^2.%` indicates a metric contains a ratio, typically in the range
-            #    0..1, that will be multiplied by 100 and displayed as a percentage
-            #    (so a metric value `0.03` means &quot;3 percent&quot;).
-        &quot;monitoredResourceTypes&quot;: [ # Read-only. If present, then a time
-            # series, which is identified partially by
-            # a metric type and a MonitoredResourceDescriptor, that is associated
-            # with this metric type can only be associated with one of the monitored
-            # resource types listed here.
-          &quot;A String&quot;,
-        ],
-        &quot;launchStage&quot;: &quot;A String&quot;, # Optional. The launch stage of the metric definition.
-        &quot;labels&quot;: [ # The set of labels that can be used to describe a specific
-            # instance of this metric type. For example, the
-            # `appengine.googleapis.com/http/server/response_latencies` metric
-            # type has a label for the HTTP response code, `response_code`, so
-            # you can look at latencies for successful responses or just
-            # for responses that failed.
-          { # A description of a label.
-            &quot;key&quot;: &quot;A String&quot;, # The label key.
-            &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;authentication&quot;: { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
-        #
-        # 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
-      &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;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
-            },
-          ],
+              # The scheme is used to determine the backend protocol and security.
+              # The following schemes are accepted:
+              #
+              #    SCHEME        PROTOCOL    SECURITY
+              #    http://       HTTP        None
+              #    https://      HTTP        TLS
+              #    grpc://       gRPC        None
+              #    grpcs://      gRPC        TLS
+              #
+              # It is recommended to explicitly include a scheme. Leaving out the scheme
+              # may cause constrasting behaviors across platforms.
+              #
+              # If the port is unspecified, the default is:
+              # - 80 for schemes without TLS
+              # - 443 for schemes with TLS
+              #
+              # For HTTP backends, use protocol
+              # to specify the protocol version.
+          &quot;pathTranslation&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;allowWithoutCredential&quot;: True or False, # If true, the service accepts API keys without any other credential.
-          &quot;oauth&quot;: { # OAuth scopes are a way to define data and permissions on data. For example, # The requirements for OAuth credentials.
-              # 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.
+          &quot;jwtAudience&quot;: &quot;A String&quot;, # The JWT audience is used when generating a JWT ID token for the backend.
+              # This ID token will be added in the HTTP &quot;authorization&quot; header, and sent
+              # to the backend.
+          &quot;disableAuth&quot;: True or False, # When disable_auth is true, a JWT ID token won&#x27;t be generated and the
+              # original &quot;Authorization&quot; HTTP header will be preserved. If the header is
+              # used to carry the original token and is expected by the backend, this
+              # field must be set to true to preserve the header.
+          &quot;deadline&quot;: 3.14, # The number of seconds to wait for a response from a request. The default
+              # varies based on the request protocol and deployment environment.
+          &quot;protocol&quot;: &quot;A String&quot;, # The protocol used for sending a request to the backend.
+              # The supported values are &quot;http/1.1&quot; and &quot;h2&quot;.
               #
-              # OAuth scope specifications should be fairly coarse grained; a user will need
-              # to see and understand the text description of what your scope means.
+              # The default value is inferred from the scheme in the
+              # address field:
               #
-              # 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.
+              #    SCHEME        PROTOCOL
+              #    http://       http/1.1
+              #    https://      http/1.1
+              #    grpc://       h2
+              #    grpcs://      h2
               #
-              # When you need finer grained OAuth consent screens: talk with your product
-              # management about how developers will use them in practice.
+              # For secure HTTP backends (https://) that support HTTP/2, set this field
+              # to &quot;h2&quot; for improved performance.
               #
-              # 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.
-            &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;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).
+              # Configuring this field to non-default values is only supported for secure
+              # HTTP backends. This field will be ignored for all other backends.
               #
-              # 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;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;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;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;header&quot;: &quot;A String&quot;, # Specifies HTTP header name to extract JWT token.
-              &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.
-            },
-          ],
+              # See
+              # https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids
+              # for more details on the supported values.
         },
       ],
     },
-    &quot;control&quot;: { # Selects and configures the service controller used by the service.  The # Configuration for the service control plane.
-        # service controller handles features like abuse, quota, billing, logging,
-        # monitoring, etc.
-      &quot;environment&quot;: &quot;A String&quot;, # The service control environment to use. If empty, no control plane
-          # feature (like quota and billing) will be enabled.
-    },
-    &quot;configVersion&quot;: 42, # The semantic version of the service configuration. The config version
-        # affects the interpretation of the service configuration. For example,
-        # certain features are enabled by default for certain config versions.
-        #
-        # The latest config version is `3`.
   }</pre>
 </div>
 
@@ -2580,18 +2547,6 @@
       #
       # For a description of IAM and its features, see the
       # [IAM documentation](https://cloud.google.com/iam/docs/).
-    &quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
-        # prevent simultaneous updates of a policy from overwriting each other.
-        # It is strongly suggested that systems make use of the `etag` in the
-        # read-modify-write cycle to perform policy updates in order to avoid race
-        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-        # systems are expected to put that etag in the request to `setIamPolicy` to
-        # ensure that their change will be applied to the same version of the policy.
-        #
-        # **Important:** If you use IAM Conditions, you must include the `etag` field
-        # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
-        # you to overwrite a version `3` policy with a version `1` policy, and all of
-        # the conditions in the version `3` policy are lost.
     &quot;version&quot;: 42, # Specifies the format of the policy.
         #
         # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
@@ -2616,6 +2571,123 @@
         #
         # To learn which resources support conditions in their IAM policies, see the
         # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+    &quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # **Important:** If you use IAM Conditions, you must include the `etag` field
+        # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
+        # you to overwrite a version `3` policy with a version `1` policy, and all of
+        # the conditions in the version `3` policy are lost.
+    &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a
+        # `condition` that determines how and when the `bindings` are applied. Each
+        # of the `bindings` must contain at least one member.
+      { # Associates `members` with a `role`.
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
+            #
+            # If the condition evaluates to `true`, then this binding applies to the
+            # current request.
+            #
+            # If the condition evaluates to `false`, then this binding does not apply to
+            # the current request. However, a different role binding might grant the same
+            # role to one or more of the members in this binding.
+            #
+            # To learn which resources support conditions in their IAM policies, see the
+            # [IAM
+            # documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+            # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
+            # are documented at https://github.com/google/cel-spec.
+            #
+            # Example (Comparison):
+            #
+            #     title: &quot;Summary size limit&quot;
+            #     description: &quot;Determines if a summary is less than 100 chars&quot;
+            #     expression: &quot;document.summary.size() &lt; 100&quot;
+            #
+            # Example (Equality):
+            #
+            #     title: &quot;Requestor is owner&quot;
+            #     description: &quot;Determines if requestor is the document owner&quot;
+            #     expression: &quot;document.owner == request.auth.claims.email&quot;
+            #
+            # Example (Logic):
+            #
+            #     title: &quot;Public documents&quot;
+            #     description: &quot;Determine whether the document should be publicly visible&quot;
+            #     expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot;
+            #
+            # Example (Data Manipulation):
+            #
+            #     title: &quot;Notification string&quot;
+            #     description: &quot;Create a notification string with a timestamp.&quot;
+            #     expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot;
+            #
+            # The exact variables and functions that may be referenced within an expression
+            # are determined by the service that evaluates it. See the service
+            # documentation for additional information.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language
+              # syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error
+              # reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing
+              # its purpose. This can be used e.g. in UIs which allow to enter the
+              # expression.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
+              # describes the expression, e.g. when hovered over it in a UI.
+        },
+        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@example.com` .
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
+            #    identifier) representing a user that has been recently deleted. For
+            #    example, `alice@example.com?uid=123456789012345678901`. If the user is
+            #    recovered, this value reverts to `user:{emailid}` and the recovered user
+            #    retains the role in the binding.
+            #
+            # * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
+            #    unique identifier) representing a service account that has been recently
+            #    deleted. For example,
+            #    `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
+            #    If the service account is undeleted, this value reverts to
+            #    `serviceAccount:{emailid}` and the undeleted service account retains the
+            #    role in the binding.
+            #
+            # * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
+            #    identifier) representing a Google group that has been recently
+            #    deleted. For example, `admins@example.com?uid=123456789012345678901`. If
+            #    the group is recovered, this value reverts to `group:{emailid}` and the
+            #    recovered group retains the role in the binding.
+            #
+            #
+            # * `domain:{domain}`: The G Suite domain (primary) that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          &quot;A String&quot;,
+        ],
+      },
+    ],
     &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
@@ -2668,6 +2740,9 @@
           # For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts jose@example.com from DATA_READ logging, and
           # aliya@example.com from DATA_WRITE logging.
+        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging.
+            # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
+            # `allServices` is a special value that covers all services.
         &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
           { # Provides the configuration for logging a type of permissions.
               # Example:
@@ -2696,121 +2771,13 @@
             &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
           },
         ],
-        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging.
-            # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
-            # `allServices` is a special value that covers all services.
-      },
-    ],
-    &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a
-        # `condition` that determines how and when the `bindings` are applied. Each
-        # of the `bindings` must contain at least one member.
-      { # Associates `members` with a `role`.
-        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
-            #
-            # If the condition evaluates to `true`, then this binding applies to the
-            # current request.
-            #
-            # If the condition evaluates to `false`, then this binding does not apply to
-            # the current request. However, a different role binding might grant the same
-            # role to one or more of the members in this binding.
-            #
-            # To learn which resources support conditions in their IAM policies, see the
-            # [IAM
-            # documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-            # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
-            # are documented at https://github.com/google/cel-spec.
-            #
-            # Example (Comparison):
-            #
-            #     title: &quot;Summary size limit&quot;
-            #     description: &quot;Determines if a summary is less than 100 chars&quot;
-            #     expression: &quot;document.summary.size() &lt; 100&quot;
-            #
-            # Example (Equality):
-            #
-            #     title: &quot;Requestor is owner&quot;
-            #     description: &quot;Determines if requestor is the document owner&quot;
-            #     expression: &quot;document.owner == request.auth.claims.email&quot;
-            #
-            # Example (Logic):
-            #
-            #     title: &quot;Public documents&quot;
-            #     description: &quot;Determine whether the document should be publicly visible&quot;
-            #     expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot;
-            #
-            # Example (Data Manipulation):
-            #
-            #     title: &quot;Notification string&quot;
-            #     description: &quot;Create a notification string with a timestamp.&quot;
-            #     expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot;
-            #
-            # The exact variables and functions that may be referenced within an expression
-            # are determined by the service that evaluates it. See the service
-            # documentation for additional information.
-          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing
-              # its purpose. This can be used e.g. in UIs which allow to enter the
-              # expression.
-          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error
-              # reporting, e.g. a file name and a position in the file.
-          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
-              # describes the expression, e.g. when hovered over it in a UI.
-          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language
-              # syntax.
-        },
-        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource.
-            # `members` can have the following values:
-            #
-            # * `allUsers`: A special identifier that represents anyone who is
-            #    on the internet; with or without a Google account.
-            #
-            # * `allAuthenticatedUsers`: A special identifier that represents anyone
-            #    who is authenticated with a Google account or a service account.
-            #
-            # * `user:{emailid}`: An email address that represents a specific Google
-            #    account. For example, `alice@example.com` .
-            #
-            #
-            # * `serviceAccount:{emailid}`: An email address that represents a service
-            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
-            #
-            # * `group:{emailid}`: An email address that represents a Google group.
-            #    For example, `admins@example.com`.
-            #
-            # * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
-            #    identifier) representing a user that has been recently deleted. For
-            #    example, `alice@example.com?uid=123456789012345678901`. If the user is
-            #    recovered, this value reverts to `user:{emailid}` and the recovered user
-            #    retains the role in the binding.
-            #
-            # * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
-            #    unique identifier) representing a service account that has been recently
-            #    deleted. For example,
-            #    `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
-            #    If the service account is undeleted, this value reverts to
-            #    `serviceAccount:{emailid}` and the undeleted service account retains the
-            #    role in the binding.
-            #
-            # * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
-            #    identifier) representing a Google group that has been recently
-            #    deleted. For example, `admins@example.com?uid=123456789012345678901`. If
-            #    the group is recovered, this value reverts to `group:{emailid}` and the
-            #    recovered group retains the role in the binding.
-            #
-            #
-            # * `domain:{domain}`: The G Suite domain (primary) that represents all the
-            #    users of that domain. For example, `google.com` or `example.com`.
-            #
-          &quot;A String&quot;,
-        ],
-        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
-            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
       },
     ],
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(consumerId=None, pageToken=None, pageSize=None, producerProjectId=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(producerProjectId=None, pageSize=None, consumerId=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists managed services.
 
 Returns all public services. For authenticated users, also returns all
@@ -2822,6 +2789,9 @@
 of &quot;project:{PROJECT-ID}&quot;.
 
 Args:
+  producerProjectId: string, Include services produced by the specified project.
+  pageSize: integer, The max number of items to include in the response list. Page size is 50
+if not specified. Maximum value is 100.
   consumerId: string, Include services consumed by the specified consumer.
 
 The Google Service Management implementation accepts the following
@@ -2829,9 +2799,6 @@
 - project:&lt;project_id&gt;
   pageToken: string, Token identifying which result to start with; returned by a previous list
 call.
-  pageSize: integer, The max number of items to include in the response list. Page size is 50
-if not specified. Maximum value is 100.
-  producerProjectId: string, Include services produced by the specified project.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -2844,9 +2811,9 @@
     &quot;services&quot;: [ # The returned services will only have the name field set.
       { # The full representation of a Service that is managed by
           # Google Service Management.
-        &quot;producerProjectId&quot;: &quot;A String&quot;, # ID of the project that produces and owns this service.
         &quot;serviceName&quot;: &quot;A String&quot;, # The name of the service. See the [overview](/service-management/overview)
             # for naming requirements.
+        &quot;producerProjectId&quot;: &quot;A String&quot;, # ID of the project that produces and owns this service.
       },
     ],
     &quot;nextPageToken&quot;: &quot;A String&quot;, # Token that can be passed to `ListServices` to resume a paginated query.
@@ -2881,11 +2848,6 @@
     The object takes the form of:
 
 { # Request message for `SetIamPolicy` method.
-    &quot;updateMask&quot;: &quot;A String&quot;, # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
-        # the fields in the mask will be modified. If no mask is provided, the
-        # following default mask is used:
-        # 
-        # `paths: &quot;bindings, etag&quot;`
     &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access # REQUIRED: The complete policy to be applied to the `resource`. The size of
         # the policy is limited to a few 10s of KB. An empty policy is a
         # valid policy but certain Cloud Platform services (such as Projects)
@@ -2956,18 +2918,6 @@
         #
         # For a description of IAM and its features, see the
         # [IAM documentation](https://cloud.google.com/iam/docs/).
-      &quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
-          # prevent simultaneous updates of a policy from overwriting each other.
-          # It is strongly suggested that systems make use of the `etag` in the
-          # read-modify-write cycle to perform policy updates in order to avoid race
-          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-          # systems are expected to put that etag in the request to `setIamPolicy` to
-          # ensure that their change will be applied to the same version of the policy.
-          #
-          # **Important:** If you use IAM Conditions, you must include the `etag` field
-          # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
-          # you to overwrite a version `3` policy with a version `1` policy, and all of
-          # the conditions in the version `3` policy are lost.
       &quot;version&quot;: 42, # Specifies the format of the policy.
           #
           # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
@@ -2992,6 +2942,123 @@
           #
           # To learn which resources support conditions in their IAM policies, see the
           # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+      &quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
+          # prevent simultaneous updates of a policy from overwriting each other.
+          # It is strongly suggested that systems make use of the `etag` in the
+          # read-modify-write cycle to perform policy updates in order to avoid race
+          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+          # systems are expected to put that etag in the request to `setIamPolicy` to
+          # ensure that their change will be applied to the same version of the policy.
+          #
+          # **Important:** If you use IAM Conditions, you must include the `etag` field
+          # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
+          # you to overwrite a version `3` policy with a version `1` policy, and all of
+          # the conditions in the version `3` policy are lost.
+      &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a
+          # `condition` that determines how and when the `bindings` are applied. Each
+          # of the `bindings` must contain at least one member.
+        { # Associates `members` with a `role`.
+          &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
+              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+          &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
+              #
+              # If the condition evaluates to `true`, then this binding applies to the
+              # current request.
+              #
+              # If the condition evaluates to `false`, then this binding does not apply to
+              # the current request. However, a different role binding might grant the same
+              # role to one or more of the members in this binding.
+              #
+              # To learn which resources support conditions in their IAM policies, see the
+              # [IAM
+              # documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+              # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
+              # are documented at https://github.com/google/cel-spec.
+              #
+              # Example (Comparison):
+              #
+              #     title: &quot;Summary size limit&quot;
+              #     description: &quot;Determines if a summary is less than 100 chars&quot;
+              #     expression: &quot;document.summary.size() &lt; 100&quot;
+              #
+              # Example (Equality):
+              #
+              #     title: &quot;Requestor is owner&quot;
+              #     description: &quot;Determines if requestor is the document owner&quot;
+              #     expression: &quot;document.owner == request.auth.claims.email&quot;
+              #
+              # Example (Logic):
+              #
+              #     title: &quot;Public documents&quot;
+              #     description: &quot;Determine whether the document should be publicly visible&quot;
+              #     expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot;
+              #
+              # Example (Data Manipulation):
+              #
+              #     title: &quot;Notification string&quot;
+              #     description: &quot;Create a notification string with a timestamp.&quot;
+              #     expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot;
+              #
+              # The exact variables and functions that may be referenced within an expression
+              # are determined by the service that evaluates it. See the service
+              # documentation for additional information.
+            &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language
+                # syntax.
+            &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error
+                # reporting, e.g. a file name and a position in the file.
+            &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing
+                # its purpose. This can be used e.g. in UIs which allow to enter the
+                # expression.
+            &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
+                # describes the expression, e.g. when hovered over it in a UI.
+          },
+          &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource.
+              # `members` can have the following values:
+              #
+              # * `allUsers`: A special identifier that represents anyone who is
+              #    on the internet; with or without a Google account.
+              #
+              # * `allAuthenticatedUsers`: A special identifier that represents anyone
+              #    who is authenticated with a Google account or a service account.
+              #
+              # * `user:{emailid}`: An email address that represents a specific Google
+              #    account. For example, `alice@example.com` .
+              #
+              #
+              # * `serviceAccount:{emailid}`: An email address that represents a service
+              #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+              #
+              # * `group:{emailid}`: An email address that represents a Google group.
+              #    For example, `admins@example.com`.
+              #
+              # * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
+              #    identifier) representing a user that has been recently deleted. For
+              #    example, `alice@example.com?uid=123456789012345678901`. If the user is
+              #    recovered, this value reverts to `user:{emailid}` and the recovered user
+              #    retains the role in the binding.
+              #
+              # * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
+              #    unique identifier) representing a service account that has been recently
+              #    deleted. For example,
+              #    `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
+              #    If the service account is undeleted, this value reverts to
+              #    `serviceAccount:{emailid}` and the undeleted service account retains the
+              #    role in the binding.
+              #
+              # * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
+              #    identifier) representing a Google group that has been recently
+              #    deleted. For example, `admins@example.com?uid=123456789012345678901`. If
+              #    the group is recovered, this value reverts to `group:{emailid}` and the
+              #    recovered group retains the role in the binding.
+              #
+              #
+              # * `domain:{domain}`: The G Suite domain (primary) that represents all the
+              #    users of that domain. For example, `google.com` or `example.com`.
+              #
+            &quot;A String&quot;,
+          ],
+        },
+      ],
       &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
         { # Specifies the audit configuration for a service.
             # The configuration determines which permission types are logged, and what
@@ -3044,6 +3111,9 @@
             # For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
             # logging. It also exempts jose@example.com from DATA_READ logging, and
             # aliya@example.com from DATA_WRITE logging.
+          &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging.
+              # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
+              # `allServices` is a special value that covers all services.
           &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
             { # Provides the configuration for logging a type of permissions.
                 # Example:
@@ -3072,117 +3142,14 @@
               &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
             },
           ],
-          &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging.
-              # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
-              # `allServices` is a special value that covers all services.
-        },
-      ],
-      &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a
-          # `condition` that determines how and when the `bindings` are applied. Each
-          # of the `bindings` must contain at least one member.
-        { # Associates `members` with a `role`.
-          &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
-              #
-              # If the condition evaluates to `true`, then this binding applies to the
-              # current request.
-              #
-              # If the condition evaluates to `false`, then this binding does not apply to
-              # the current request. However, a different role binding might grant the same
-              # role to one or more of the members in this binding.
-              #
-              # To learn which resources support conditions in their IAM policies, see the
-              # [IAM
-              # documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-              # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
-              # are documented at https://github.com/google/cel-spec.
-              #
-              # Example (Comparison):
-              #
-              #     title: &quot;Summary size limit&quot;
-              #     description: &quot;Determines if a summary is less than 100 chars&quot;
-              #     expression: &quot;document.summary.size() &lt; 100&quot;
-              #
-              # Example (Equality):
-              #
-              #     title: &quot;Requestor is owner&quot;
-              #     description: &quot;Determines if requestor is the document owner&quot;
-              #     expression: &quot;document.owner == request.auth.claims.email&quot;
-              #
-              # Example (Logic):
-              #
-              #     title: &quot;Public documents&quot;
-              #     description: &quot;Determine whether the document should be publicly visible&quot;
-              #     expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot;
-              #
-              # Example (Data Manipulation):
-              #
-              #     title: &quot;Notification string&quot;
-              #     description: &quot;Create a notification string with a timestamp.&quot;
-              #     expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot;
-              #
-              # The exact variables and functions that may be referenced within an expression
-              # are determined by the service that evaluates it. See the service
-              # documentation for additional information.
-            &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing
-                # its purpose. This can be used e.g. in UIs which allow to enter the
-                # expression.
-            &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error
-                # reporting, e.g. a file name and a position in the file.
-            &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
-                # describes the expression, e.g. when hovered over it in a UI.
-            &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language
-                # syntax.
-          },
-          &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource.
-              # `members` can have the following values:
-              #
-              # * `allUsers`: A special identifier that represents anyone who is
-              #    on the internet; with or without a Google account.
-              #
-              # * `allAuthenticatedUsers`: A special identifier that represents anyone
-              #    who is authenticated with a Google account or a service account.
-              #
-              # * `user:{emailid}`: An email address that represents a specific Google
-              #    account. For example, `alice@example.com` .
-              #
-              #
-              # * `serviceAccount:{emailid}`: An email address that represents a service
-              #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
-              #
-              # * `group:{emailid}`: An email address that represents a Google group.
-              #    For example, `admins@example.com`.
-              #
-              # * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
-              #    identifier) representing a user that has been recently deleted. For
-              #    example, `alice@example.com?uid=123456789012345678901`. If the user is
-              #    recovered, this value reverts to `user:{emailid}` and the recovered user
-              #    retains the role in the binding.
-              #
-              # * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
-              #    unique identifier) representing a service account that has been recently
-              #    deleted. For example,
-              #    `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
-              #    If the service account is undeleted, this value reverts to
-              #    `serviceAccount:{emailid}` and the undeleted service account retains the
-              #    role in the binding.
-              #
-              # * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
-              #    identifier) representing a Google group that has been recently
-              #    deleted. For example, `admins@example.com?uid=123456789012345678901`. If
-              #    the group is recovered, this value reverts to `group:{emailid}` and the
-              #    recovered group retains the role in the binding.
-              #
-              #
-              # * `domain:{domain}`: The G Suite domain (primary) that represents all the
-              #    users of that domain. For example, `google.com` or `example.com`.
-              #
-            &quot;A String&quot;,
-          ],
-          &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
-              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
         },
       ],
     },
+    &quot;updateMask&quot;: &quot;A String&quot;, # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+        # the fields in the mask will be modified. If no mask is provided, the
+        # following default mask is used:
+        # 
+        # `paths: &quot;bindings, etag&quot;`
   }
 
   x__xgafv: string, V1 error format.
@@ -3260,18 +3227,6 @@
       #
       # For a description of IAM and its features, see the
       # [IAM documentation](https://cloud.google.com/iam/docs/).
-    &quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
-        # prevent simultaneous updates of a policy from overwriting each other.
-        # It is strongly suggested that systems make use of the `etag` in the
-        # read-modify-write cycle to perform policy updates in order to avoid race
-        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-        # systems are expected to put that etag in the request to `setIamPolicy` to
-        # ensure that their change will be applied to the same version of the policy.
-        #
-        # **Important:** If you use IAM Conditions, you must include the `etag` field
-        # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
-        # you to overwrite a version `3` policy with a version `1` policy, and all of
-        # the conditions in the version `3` policy are lost.
     &quot;version&quot;: 42, # Specifies the format of the policy.
         #
         # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
@@ -3296,6 +3251,123 @@
         #
         # To learn which resources support conditions in their IAM policies, see the
         # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+    &quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # **Important:** If you use IAM Conditions, you must include the `etag` field
+        # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
+        # you to overwrite a version `3` policy with a version `1` policy, and all of
+        # the conditions in the version `3` policy are lost.
+    &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a
+        # `condition` that determines how and when the `bindings` are applied. Each
+        # of the `bindings` must contain at least one member.
+      { # Associates `members` with a `role`.
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
+            #
+            # If the condition evaluates to `true`, then this binding applies to the
+            # current request.
+            #
+            # If the condition evaluates to `false`, then this binding does not apply to
+            # the current request. However, a different role binding might grant the same
+            # role to one or more of the members in this binding.
+            #
+            # To learn which resources support conditions in their IAM policies, see the
+            # [IAM
+            # documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+            # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
+            # are documented at https://github.com/google/cel-spec.
+            #
+            # Example (Comparison):
+            #
+            #     title: &quot;Summary size limit&quot;
+            #     description: &quot;Determines if a summary is less than 100 chars&quot;
+            #     expression: &quot;document.summary.size() &lt; 100&quot;
+            #
+            # Example (Equality):
+            #
+            #     title: &quot;Requestor is owner&quot;
+            #     description: &quot;Determines if requestor is the document owner&quot;
+            #     expression: &quot;document.owner == request.auth.claims.email&quot;
+            #
+            # Example (Logic):
+            #
+            #     title: &quot;Public documents&quot;
+            #     description: &quot;Determine whether the document should be publicly visible&quot;
+            #     expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot;
+            #
+            # Example (Data Manipulation):
+            #
+            #     title: &quot;Notification string&quot;
+            #     description: &quot;Create a notification string with a timestamp.&quot;
+            #     expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot;
+            #
+            # The exact variables and functions that may be referenced within an expression
+            # are determined by the service that evaluates it. See the service
+            # documentation for additional information.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language
+              # syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error
+              # reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing
+              # its purpose. This can be used e.g. in UIs which allow to enter the
+              # expression.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
+              # describes the expression, e.g. when hovered over it in a UI.
+        },
+        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@example.com` .
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
+            #    identifier) representing a user that has been recently deleted. For
+            #    example, `alice@example.com?uid=123456789012345678901`. If the user is
+            #    recovered, this value reverts to `user:{emailid}` and the recovered user
+            #    retains the role in the binding.
+            #
+            # * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
+            #    unique identifier) representing a service account that has been recently
+            #    deleted. For example,
+            #    `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
+            #    If the service account is undeleted, this value reverts to
+            #    `serviceAccount:{emailid}` and the undeleted service account retains the
+            #    role in the binding.
+            #
+            # * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
+            #    identifier) representing a Google group that has been recently
+            #    deleted. For example, `admins@example.com?uid=123456789012345678901`. If
+            #    the group is recovered, this value reverts to `group:{emailid}` and the
+            #    recovered group retains the role in the binding.
+            #
+            #
+            # * `domain:{domain}`: The G Suite domain (primary) that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          &quot;A String&quot;,
+        ],
+      },
+    ],
     &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
@@ -3348,6 +3420,9 @@
           # For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts jose@example.com from DATA_READ logging, and
           # aliya@example.com from DATA_WRITE logging.
+        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging.
+            # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
+            # `allServices` is a special value that covers all services.
         &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
           { # Provides the configuration for logging a type of permissions.
               # Example:
@@ -3376,114 +3451,6 @@
             &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
           },
         ],
-        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging.
-            # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
-            # `allServices` is a special value that covers all services.
-      },
-    ],
-    &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a
-        # `condition` that determines how and when the `bindings` are applied. Each
-        # of the `bindings` must contain at least one member.
-      { # Associates `members` with a `role`.
-        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
-            #
-            # If the condition evaluates to `true`, then this binding applies to the
-            # current request.
-            #
-            # If the condition evaluates to `false`, then this binding does not apply to
-            # the current request. However, a different role binding might grant the same
-            # role to one or more of the members in this binding.
-            #
-            # To learn which resources support conditions in their IAM policies, see the
-            # [IAM
-            # documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-            # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
-            # are documented at https://github.com/google/cel-spec.
-            #
-            # Example (Comparison):
-            #
-            #     title: &quot;Summary size limit&quot;
-            #     description: &quot;Determines if a summary is less than 100 chars&quot;
-            #     expression: &quot;document.summary.size() &lt; 100&quot;
-            #
-            # Example (Equality):
-            #
-            #     title: &quot;Requestor is owner&quot;
-            #     description: &quot;Determines if requestor is the document owner&quot;
-            #     expression: &quot;document.owner == request.auth.claims.email&quot;
-            #
-            # Example (Logic):
-            #
-            #     title: &quot;Public documents&quot;
-            #     description: &quot;Determine whether the document should be publicly visible&quot;
-            #     expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot;
-            #
-            # Example (Data Manipulation):
-            #
-            #     title: &quot;Notification string&quot;
-            #     description: &quot;Create a notification string with a timestamp.&quot;
-            #     expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot;
-            #
-            # The exact variables and functions that may be referenced within an expression
-            # are determined by the service that evaluates it. See the service
-            # documentation for additional information.
-          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing
-              # its purpose. This can be used e.g. in UIs which allow to enter the
-              # expression.
-          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error
-              # reporting, e.g. a file name and a position in the file.
-          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
-              # describes the expression, e.g. when hovered over it in a UI.
-          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language
-              # syntax.
-        },
-        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource.
-            # `members` can have the following values:
-            #
-            # * `allUsers`: A special identifier that represents anyone who is
-            #    on the internet; with or without a Google account.
-            #
-            # * `allAuthenticatedUsers`: A special identifier that represents anyone
-            #    who is authenticated with a Google account or a service account.
-            #
-            # * `user:{emailid}`: An email address that represents a specific Google
-            #    account. For example, `alice@example.com` .
-            #
-            #
-            # * `serviceAccount:{emailid}`: An email address that represents a service
-            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
-            #
-            # * `group:{emailid}`: An email address that represents a Google group.
-            #    For example, `admins@example.com`.
-            #
-            # * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
-            #    identifier) representing a user that has been recently deleted. For
-            #    example, `alice@example.com?uid=123456789012345678901`. If the user is
-            #    recovered, this value reverts to `user:{emailid}` and the recovered user
-            #    retains the role in the binding.
-            #
-            # * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
-            #    unique identifier) representing a service account that has been recently
-            #    deleted. For example,
-            #    `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
-            #    If the service account is undeleted, this value reverts to
-            #    `serviceAccount:{emailid}` and the undeleted service account retains the
-            #    role in the binding.
-            #
-            # * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
-            #    identifier) representing a Google group that has been recently
-            #    deleted. For example, `admins@example.com?uid=123456789012345678901`. If
-            #    the group is recovered, this value reverts to `group:{emailid}` and the
-            #    recovered group retains the role in the binding.
-            #
-            #
-            # * `domain:{domain}`: The G Suite domain (primary) that represents all the
-            #    users of that domain. For example, `google.com` or `example.com`.
-            #
-          &quot;A String&quot;,
-        ],
-        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
-            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
       },
     ],
   }</pre>
@@ -3552,6 +3519,27 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
+    &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
+        # different programming environments, including REST APIs and RPC APIs. It is
+        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+        # three pieces of data: error code, error message, and error details.
+        #
+        # You can find out more about this error model and how to work with it in the
+        # [API Design Guide](https://cloud.google.com/apis/design/errors).
+      &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;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;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
@@ -3571,27 +3559,6 @@
         # `TakeSnapshotResponse`.
       &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 # The error result of the operation in case of failure or cancellation.
-        # different programming environments, including REST APIs and RPC APIs. It is
-        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
-        # three pieces of data: error code, error message, and error details.
-        #
-        # You can find out more about this error model and how to work with it in the
-        # [API Design Guide](https://cloud.google.com/apis/design/errors).
-      &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;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.
-    },
   }</pre>
 </div>