Regen docs (#373)

diff --git a/docs/dyn/servicecontrol_v1.services.html b/docs/dyn/servicecontrol_v1.services.html
index 5a42bf5..928e631 100644
--- a/docs/dyn/servicecontrol_v1.services.html
+++ b/docs/dyn/servicecontrol_v1.services.html
@@ -102,6 +102,16 @@
 permission on the specified service. For more information, see
 [Google Cloud IAM](https://cloud.google.com/iam).
 
+**NOTE:** the client code **must** fail-open if the server returns one
+of the following quota errors:
+-   `PROJECT_STATUS_UNAVAILABLE`
+-   `SERVICE_STATUS_UNAVAILABLE`
+-   `BILLING_STATUS_UNAVAILABLE`
+-   `QUOTA_SYSTEM_UNAVAILABLE`
+
+The server may inject above errors to prohibit any hard dependency
+on the quota system.
+
 Args:
   serviceName: string, Name of the service as specified in the service configuration. For example,
 `"pubsub.googleapis.com"`.
@@ -133,14 +143,14 @@
           "metricValues": [ # The values in this metric.
             { # Represents a single metric value.
               "moneyValue": { # Represents an amount of money with its currency type. # A money value.
-                "units": "A String", # The whole units of the amount.
-                    # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
                 "nanos": 42, # Number of nano (10^-9) units of the amount.
                     # The value must be between -999,999,999 and +999,999,999 inclusive.
                     # If `units` is positive, `nanos` must be positive or zero.
                     # If `units` is zero, `nanos` can be positive, zero, or negative.
                     # If `units` is negative, `nanos` must be negative or zero.
                     # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                "units": "A String", # The whole units of the amount.
+                    # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
                 "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
               },
               "labels": { # The labels describing the metric value.
@@ -276,15 +286,6 @@
   An object of the form:
 
     { # Response message for the AllocateQuota method.
-    "allocateErrors": [ # Indicates the decision of the allocate.
-      {
-        "code": "A String", # Error code.
-        "description": "A String", # Free-form text that provides details on the cause of the error.
-        "subject": "A String", # Subject to whom this error applies. See the specific enum for more details
-            # on this field. For example, "clientip:<ip address of client>" or
-            # "project:<Google developer project id>".
-      },
-    ],
     "serviceConfigId": "A String", # ID of the actual config used to process the request.
     "quotaMetrics": [ # Quota metrics to indicate the result of allocation. Depending on the
         # request, one or more of the following metrics will be included:
@@ -300,20 +301,24 @@
         # 3. For both rate quota and allocation quota, the quota limit reached
         # condition will be specified using the following boolean metric:
         #   "serviceruntime.googleapis.com/quota/exceeded"
+        #
+        # 4. For allocation quota, value for each quota limit associated with
+        # the metrics will be specified using the following gauge metric:
+        #   "serviceruntime.googleapis.com/quota/limit"
       { # Represents a set of metric values in the same metric.
           # Each metric value in the set should have a unique combination of start time,
           # end time, and label values.
         "metricValues": [ # The values in this metric.
           { # Represents a single metric value.
             "moneyValue": { # Represents an amount of money with its currency type. # A money value.
-              "units": "A String", # The whole units of the amount.
-                  # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
               "nanos": 42, # Number of nano (10^-9) units of the amount.
                   # The value must be between -999,999,999 and +999,999,999 inclusive.
                   # If `units` is positive, `nanos` must be positive or zero.
                   # If `units` is zero, `nanos` can be positive, zero, or negative.
                   # If `units` is negative, `nanos` must be negative or zero.
                   # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+              "units": "A String", # The whole units of the amount.
+                  # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
               "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
             },
             "labels": { # The labels describing the metric value.
@@ -411,6 +416,15 @@
         "metricName": "A String", # The metric name defined in the service configuration.
       },
     ],
+    "allocateErrors": [ # Indicates the decision of the allocate.
+      {
+        "code": "A String", # Error code.
+        "description": "A String", # Free-form text that provides details on the cause of the error.
+        "subject": "A String", # Subject to whom this error applies. See the specific enum for more details
+            # on this field. For example, "clientip:<ip address of client>" or
+            # "project:<Google developer project id>".
+      },
+    ],
     "operationId": "A String", # The same operation_id value used in the AllocateQuotaRequest. Used for
         # logging and diagnostics purposes.
   }</pre>
@@ -449,7 +463,23 @@
         # If unspecified or no matching version can be found, the
         # latest one will be used.
     "operation": { # Represents information regarding an operation. # The operation to be checked.
-      "operationName": "A String", # Fully qualified name of the operation. Reserved for future use.
+      "labels": { # Labels describing the operation. Only the following labels are allowed:
+          #
+          # - Labels describing monitored resources as defined in
+          #   the service configuration.
+          # - Default labels of metric values. When specified, labels defined in the
+          #   metric value override these default.
+          # - The following labels defined by Google Cloud Platform:
+          #     - `cloud.googleapis.com/location` describing the location where the
+          #        operation happened,
+          #     - `servicecontrol.googleapis.com/user_agent` describing the user agent
+          #        of the API request,
+          #     - `servicecontrol.googleapis.com/service_agent` describing the service
+          #        used to handle the API request (e.g. ESP),
+          #     - `servicecontrol.googleapis.com/platform` describing the platform
+          #        where the API is served (e.g. GAE, GCE, GKE).
+        "a_key": "A String",
+      },
       "metricValueSets": [ # Represents information about this operation. Each MetricValueSet
           # corresponds to a metric defined in the service configuration.
           # The data type used in the MetricValueSet must agree with
@@ -466,14 +496,14 @@
           "metricValues": [ # The values in this metric.
             { # Represents a single metric value.
               "moneyValue": { # Represents an amount of money with its currency type. # A money value.
-                "units": "A String", # The whole units of the amount.
-                    # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
                 "nanos": 42, # Number of nano (10^-9) units of the amount.
                     # The value must be between -999,999,999 and +999,999,999 inclusive.
                     # If `units` is positive, `nanos` must be positive or zero.
                     # If `units` is zero, `nanos` can be positive, zero, or negative.
                     # If `units` is negative, `nanos` must be negative or zero.
                     # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                "units": "A String", # The whole units of the amount.
+                    # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
                 "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
               },
               "labels": { # The labels describing the metric value.
@@ -572,31 +602,9 @@
         },
       ],
       "importance": "A String", # DO NOT USE. This is an experimental field.
-      "labels": { # Labels describing the operation. Only the following labels are allowed:
-          #
-          # - Labels describing monitored resources as defined in
-          #   the service configuration.
-          # - Default labels of metric values. When specified, labels defined in the
-          #   metric value override these default.
-          # - The following labels defined by Google Cloud Platform:
-          #     - `cloud.googleapis.com/location` describing the location where the
-          #        operation happened,
-          #     - `servicecontrol.googleapis.com/user_agent` describing the user agent
-          #        of the API request,
-          #     - `servicecontrol.googleapis.com/service_agent` describing the service
-          #        used to handle the API request (e.g. ESP),
-          #     - `servicecontrol.googleapis.com/platform` describing the platform
-          #        where the API is served (e.g. GAE, GCE, GKE).
-        "a_key": "A String",
-      },
+      "operationName": "A String", # Fully qualified name of the operation. Reserved for future use.
       "quotaProperties": { # Represents the properties needed for quota operations. # Represents the properties needed for quota check. Applicable only if this
           # operation is for a quota check request.
-          #
-          # Use the metric_value_sets field in Operation message to provide cost
-          # override with metric_name in <service_name>/quota/<quota_group_name>/cost
-          # format. Overrides for unmatched quota groups will be ignored.
-          # Costs are expected to be >= 0. Cost 0 will cause no quota check,
-          # but still traffic restrictions will be enforced.
         "quotaMode": "A String", # Quota mode for this operation.
         "limitByIds": { # LimitType IDs that should be used for checking quota. Key in this map
             # should be a valid LimitType string, and the value is the ID to be used. For
@@ -622,9 +630,6 @@
           # with.
         "a_key": "A String",
       },
-      "endTime": "A String", # End time of the operation.
-          # Required when the operation is used in ServiceController.Report,
-          # but optional when the operation is used in ServiceController.Check.
       "logEntries": [ # Represents information to be logged.
         { # An individual log entry.
           "severity": "A String", # The severity of the log entry. The default value is
@@ -651,7 +656,6 @@
               # `"book_log"`.
         },
       ],
-      "startTime": "A String", # Required. Start time of the operation.
       "consumerId": "A String", # Identity of the consumer who is using the service.
           # This field should be filled in for the operations initiated by a
           # consumer, but not for service-initiated operations that are
@@ -661,6 +665,10 @@
           #   project:<project_id>,
           #   project_number:<project_number>,
           #   api_key:<api_key>.
+      "startTime": "A String", # Required. Start time of the operation.
+      "endTime": "A String", # End time of the operation.
+          # Required when the operation is used in ServiceController.Report,
+          # but optional when the operation is used in ServiceController.Check.
       "operationId": "A String", # Identity of the operation. This must be unique within the scope of the
           # service that generated the operation. If the service calls
           # Check() and Report() on the same operation, the two calls should carry
@@ -685,6 +693,12 @@
     { # Response message for the Check method.
     "serviceConfigId": "A String", # The actual config id used to process the request.
     "quotaInfo": { # Contains the quota information for a quota check response. # Quota information for the check request associated with this response.
+      "quotaConsumed": { # Map of quota group name to the actual number of tokens consumed. If the
+          # quota check was not successful, then this will not be populated due to no
+          # quota consumption.
+          # Deprecated: Use quota_metrics to get per quota group usage.
+        "a_key": 42,
+      },
       "quotaMetrics": [ # Quota metrics to indicate the usage. Depending on the check request, one or
           # more of the following metrics will be included:
           #
@@ -705,14 +719,14 @@
           "metricValues": [ # The values in this metric.
             { # Represents a single metric value.
               "moneyValue": { # Represents an amount of money with its currency type. # A money value.
-                "units": "A String", # The whole units of the amount.
-                    # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
                 "nanos": 42, # Number of nano (10^-9) units of the amount.
                     # The value must be between -999,999,999 and +999,999,999 inclusive.
                     # If `units` is positive, `nanos` must be positive or zero.
                     # If `units` is zero, `nanos` can be positive, zero, or negative.
                     # If `units` is negative, `nanos` must be negative or zero.
                     # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                "units": "A String", # The whole units of the amount.
+                    # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
                 "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
               },
               "labels": { # The labels describing the metric value.
@@ -817,12 +831,6 @@
           # Deprecated: Use quota_metrics to get per quota group limit exceeded status.
         "A String",
       ],
-      "quotaConsumed": { # Map of quota group name to the actual number of tokens consumed. If the
-          # quota check was not successful, then this will not be populated due to no
-          # quota consumption.
-          # Deprecated: Use quota_metrics to get per quota group usage.
-        "a_key": 42,
-      },
     },
     "checkInfo": { # Feedback data returned from the server during processing a Check request.
       "unusedArguments": [ # A list of fields and label keys that are ignored by the server.
@@ -885,14 +893,14 @@
           "metricValues": [ # The values in this metric.
             { # Represents a single metric value.
               "moneyValue": { # Represents an amount of money with its currency type. # A money value.
-                "units": "A String", # The whole units of the amount.
-                    # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
                 "nanos": 42, # Number of nano (10^-9) units of the amount.
                     # The value must be between -999,999,999 and +999,999,999 inclusive.
                     # If `units` is positive, `nanos` must be positive or zero.
                     # If `units` is zero, `nanos` can be positive, zero, or negative.
                     # If `units` is negative, `nanos` must be negative or zero.
                     # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                "units": "A String", # The whole units of the amount.
+                    # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
                 "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
               },
               "labels": { # The labels describing the metric value.
@@ -1030,20 +1038,39 @@
     {
     "serviceConfigId": "A String", # ID of the actual config used to process the request.
     "quotaMetrics": [ # Metric values as tracked by One Platform before the adjustment was made.
+        # The following metrics will be included:
+        #
+        # 1. Per quota metric total usage will be specified using the following gauge
+        # metric:
+        #   "serviceruntime.googleapis.com/allocation/consumer/quota_used_count"
+        #
+        # 2. Value for each quota limit associated with the metrics will be specified
+        # using the following gauge metric:
+        #   "serviceruntime.googleapis.com/quota/limit"
+        #
+        # 3. Delta value of the usage after the reconciliation for limits associated
+        # with the metrics will be specified using the following metric:
+        #   "serviceruntime.googleapis.com/allocation/reconciliation_delta"
+        # The delta value is defined as:
+        #   new_usage_from_client - existing_value_in_spanner.
+        # This metric is not defined in serviceruntime.yaml or in Cloud Monarch.
+        # This metric is meant for callers' use only. Since this metric is not
+        # defined in the monitoring backend, reporting on this metric will result in
+        # an error.
       { # Represents a set of metric values in the same metric.
           # Each metric value in the set should have a unique combination of start time,
           # end time, and label values.
         "metricValues": [ # The values in this metric.
           { # Represents a single metric value.
             "moneyValue": { # Represents an amount of money with its currency type. # A money value.
-              "units": "A String", # The whole units of the amount.
-                  # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
               "nanos": 42, # Number of nano (10^-9) units of the amount.
                   # The value must be between -999,999,999 and +999,999,999 inclusive.
                   # If `units` is positive, `nanos` must be positive or zero.
                   # If `units` is zero, `nanos` can be positive, zero, or negative.
                   # If `units` is negative, `nanos` must be negative or zero.
                   # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+              "units": "A String", # The whole units of the amount.
+                  # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
               "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
             },
             "labels": { # The labels describing the metric value.
@@ -1163,6 +1190,16 @@
 permission on the specified service. For more information, see
 [Google Cloud IAM](https://cloud.google.com/iam).
 
+**NOTE:** the client code **must** fail-open if the server returns one
+of the following quota errors:
+-   `PROJECT_STATUS_UNAVAILABLE`
+-   `SERVICE_STATUS_UNAVAILABLE`
+-   `BILLING_STATUS_UNAVAILABLE`
+-   `QUOTA_SYSTEM_UNAVAILABLE`
+
+The server may inject above errors to prohibit any hard dependency
+on the quota system.
+
 Args:
   serviceName: string, Name of the service as specified in the service configuration. For example,
 `"pubsub.googleapis.com"`.
@@ -1189,14 +1226,14 @@
           "metricValues": [ # The values in this metric.
             { # Represents a single metric value.
               "moneyValue": { # Represents an amount of money with its currency type. # A money value.
-                "units": "A String", # The whole units of the amount.
-                    # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
                 "nanos": 42, # Number of nano (10^-9) units of the amount.
                     # The value must be between -999,999,999 and +999,999,999 inclusive.
                     # If `units` is positive, `nanos` must be positive or zero.
                     # If `units` is zero, `nanos` can be positive, zero, or negative.
                     # If `units` is negative, `nanos` must be negative or zero.
                     # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                "units": "A String", # The whole units of the amount.
+                    # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
                 "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
               },
               "labels": { # The labels describing the metric value.
@@ -1346,20 +1383,24 @@
         # 2. For allocation quota, per quota metric total usage will be specified
         # using the following gauge metric:
         #   "serviceruntime.googleapis.com/allocation/consumer/quota_used_count"
+        #
+        # 3. For allocation quota, value for each quota limit associated with
+        # the metrics will be specified using the following gauge metric:
+        #   "serviceruntime.googleapis.com/quota/limit"
       { # Represents a set of metric values in the same metric.
           # Each metric value in the set should have a unique combination of start time,
           # end time, and label values.
         "metricValues": [ # The values in this metric.
           { # Represents a single metric value.
             "moneyValue": { # Represents an amount of money with its currency type. # A money value.
-              "units": "A String", # The whole units of the amount.
-                  # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
               "nanos": 42, # Number of nano (10^-9) units of the amount.
                   # The value must be between -999,999,999 and +999,999,999 inclusive.
                   # If `units` is positive, `nanos` must be positive or zero.
                   # If `units` is zero, `nanos` can be positive, zero, or negative.
                   # If `units` is negative, `nanos` must be negative or zero.
                   # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+              "units": "A String", # The whole units of the amount.
+                  # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
               "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
             },
             "labels": { # The labels describing the metric value.
@@ -1508,7 +1549,23 @@
         # should be no larger than 1MB. See ReportResponse.report_errors for
         # partial failure behavior.
       { # Represents information regarding an operation.
-        "operationName": "A String", # Fully qualified name of the operation. Reserved for future use.
+        "labels": { # Labels describing the operation. Only the following labels are allowed:
+            #
+            # - Labels describing monitored resources as defined in
+            #   the service configuration.
+            # - Default labels of metric values. When specified, labels defined in the
+            #   metric value override these default.
+            # - The following labels defined by Google Cloud Platform:
+            #     - `cloud.googleapis.com/location` describing the location where the
+            #        operation happened,
+            #     - `servicecontrol.googleapis.com/user_agent` describing the user agent
+            #        of the API request,
+            #     - `servicecontrol.googleapis.com/service_agent` describing the service
+            #        used to handle the API request (e.g. ESP),
+            #     - `servicecontrol.googleapis.com/platform` describing the platform
+            #        where the API is served (e.g. GAE, GCE, GKE).
+          "a_key": "A String",
+        },
         "metricValueSets": [ # Represents information about this operation. Each MetricValueSet
             # corresponds to a metric defined in the service configuration.
             # The data type used in the MetricValueSet must agree with
@@ -1525,14 +1582,14 @@
             "metricValues": [ # The values in this metric.
               { # Represents a single metric value.
                 "moneyValue": { # Represents an amount of money with its currency type. # A money value.
-                  "units": "A String", # The whole units of the amount.
-                      # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
                   "nanos": 42, # Number of nano (10^-9) units of the amount.
                       # The value must be between -999,999,999 and +999,999,999 inclusive.
                       # If `units` is positive, `nanos` must be positive or zero.
                       # If `units` is zero, `nanos` can be positive, zero, or negative.
                       # If `units` is negative, `nanos` must be negative or zero.
                       # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                  "units": "A String", # The whole units of the amount.
+                      # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
                   "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
                 },
                 "labels": { # The labels describing the metric value.
@@ -1631,31 +1688,9 @@
           },
         ],
         "importance": "A String", # DO NOT USE. This is an experimental field.
-        "labels": { # Labels describing the operation. Only the following labels are allowed:
-            #
-            # - Labels describing monitored resources as defined in
-            #   the service configuration.
-            # - Default labels of metric values. When specified, labels defined in the
-            #   metric value override these default.
-            # - The following labels defined by Google Cloud Platform:
-            #     - `cloud.googleapis.com/location` describing the location where the
-            #        operation happened,
-            #     - `servicecontrol.googleapis.com/user_agent` describing the user agent
-            #        of the API request,
-            #     - `servicecontrol.googleapis.com/service_agent` describing the service
-            #        used to handle the API request (e.g. ESP),
-            #     - `servicecontrol.googleapis.com/platform` describing the platform
-            #        where the API is served (e.g. GAE, GCE, GKE).
-          "a_key": "A String",
-        },
+        "operationName": "A String", # Fully qualified name of the operation. Reserved for future use.
         "quotaProperties": { # Represents the properties needed for quota operations. # Represents the properties needed for quota check. Applicable only if this
             # operation is for a quota check request.
-            #
-            # Use the metric_value_sets field in Operation message to provide cost
-            # override with metric_name in <service_name>/quota/<quota_group_name>/cost
-            # format. Overrides for unmatched quota groups will be ignored.
-            # Costs are expected to be >= 0. Cost 0 will cause no quota check,
-            # but still traffic restrictions will be enforced.
           "quotaMode": "A String", # Quota mode for this operation.
           "limitByIds": { # LimitType IDs that should be used for checking quota. Key in this map
               # should be a valid LimitType string, and the value is the ID to be used. For
@@ -1681,9 +1716,6 @@
             # with.
           "a_key": "A String",
         },
-        "endTime": "A String", # End time of the operation.
-            # Required when the operation is used in ServiceController.Report,
-            # but optional when the operation is used in ServiceController.Check.
         "logEntries": [ # Represents information to be logged.
           { # An individual log entry.
             "severity": "A String", # The severity of the log entry. The default value is
@@ -1710,7 +1742,6 @@
                 # `"book_log"`.
           },
         ],
-        "startTime": "A String", # Required. Start time of the operation.
         "consumerId": "A String", # Identity of the consumer who is using the service.
             # This field should be filled in for the operations initiated by a
             # consumer, but not for service-initiated operations that are
@@ -1720,6 +1751,10 @@
             #   project:<project_id>,
             #   project_number:<project_number>,
             #   api_key:<api_key>.
+        "startTime": "A String", # Required. Start time of the operation.
+        "endTime": "A String", # End time of the operation.
+            # Required when the operation is used in ServiceController.Report,
+            # but optional when the operation is used in ServiceController.Check.
         "operationId": "A String", # Identity of the operation. This must be unique within the scope of the
             # service that generated the operation. If the service calls
             # Check() and Report() on the same operation, the two calls should carry
@@ -1747,7 +1782,87 @@
   An object of the form:
 
     { # Response message for the Report method.
-    "serviceConfigId": "A String", # The actual config id used to process the request.
+    "reportErrors": [ # Partial failures, one for each `Operation` in the request that failed
+        # processing. There are three possible combinations of the RPC status:
+        #
+        # 1. The combination of a successful RPC status and an empty `report_errors`
+        #    list indicates a complete success where all `Operations` in the
+        #    request are processed successfully.
+        # 2. The combination of a successful RPC status and a non-empty
+        #    `report_errors` list indicates a partial success where some
+        #    `Operations` in the request succeeded. Each
+        #    `Operation` that failed processing has a corresponding item
+        #    in this list.
+        # 3. A failed RPC status indicates a general non-deterministic failure.
+        #    When this happens, it's impossible to know which of the
+        #    'Operations' in the request succeeded or failed.
+      { # Represents the processing error of one `Operation` in the request.
+        "status": { # The `Status` type defines a logical error model that is suitable for different # Details of the error when processing the `Operation`.
+            # programming environments, including REST APIs and RPC APIs. It is used by
+            # [gRPC](https://github.com/grpc). The error model is designed to be:
+            #
+            # - Simple to use and understand for most users
+            # - Flexible enough to meet unexpected needs
+            #
+            # # Overview
+            #
+            # The `Status` message contains three pieces of data: error code, error message,
+            # and error details. The error code should be an enum value of
+            # google.rpc.Code, but it may accept additional error codes if needed.  The
+            # error message should be a developer-facing English message that helps
+            # developers *understand* and *resolve* the error. If a localized user-facing
+            # error message is needed, put the localized message in the error details or
+            # localize it in the client. The optional error details may contain arbitrary
+            # information about the error. There is a predefined set of error detail types
+            # in the package `google.rpc` which can be used for common error conditions.
+            #
+            # # Language mapping
+            #
+            # The `Status` message is the logical representation of the error model, but it
+            # is not necessarily the actual wire format. When the `Status` message is
+            # exposed in different client libraries and different wire protocols, it can be
+            # mapped differently. For example, it will likely be mapped to some exceptions
+            # in Java, but more likely mapped to some error codes in C.
+            #
+            # # Other uses
+            #
+            # The error model and the `Status` message can be used in a variety of
+            # environments, either with or without APIs, to provide a
+            # consistent developer experience across different environments.
+            #
+            # Example uses of this error model include:
+            #
+            # - Partial errors. If a service needs to return partial errors to the client,
+            #     it may embed the `Status` in the normal response to indicate the partial
+            #     errors.
+            #
+            # - Workflow errors. A typical workflow has multiple steps. Each step may
+            #     have a `Status` message for error reporting purpose.
+            #
+            # - Batch operations. If a client uses batch request and batch response, the
+            #     `Status` message should be used directly inside batch response, one for
+            #     each error sub-response.
+            #
+            # - Asynchronous operations. If an API call embeds asynchronous operation
+            #     results in its response, the status of those operations should be
+            #     represented directly using the `Status` message.
+            #
+            # - Logging. If some API errors are stored in logs, the message `Status` could
+            #     be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
+          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+          "details": [ # A list of messages that carry the error details.  There will be a
+              # common set of message types for APIs to use.
+            {
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+        },
+        "operationId": "A String", # The Operation.operation_id value from the request.
+      },
+    ],
     "reportInfos": [ # Quota usage for each quota release `Operation` request.
         #
         # Fully or partially failed quota release request may or may not be present
@@ -1758,6 +1873,12 @@
         # If there is no quota release request, report_quota_info will be empty.
       {
         "quotaInfo": { # Contains the quota information for a quota check response. # Quota usage info when processing the `Operation`.
+          "quotaConsumed": { # Map of quota group name to the actual number of tokens consumed. If the
+              # quota check was not successful, then this will not be populated due to no
+              # quota consumption.
+              # Deprecated: Use quota_metrics to get per quota group usage.
+            "a_key": 42,
+          },
           "quotaMetrics": [ # Quota metrics to indicate the usage. Depending on the check request, one or
               # more of the following metrics will be included:
               #
@@ -1778,14 +1899,14 @@
               "metricValues": [ # The values in this metric.
                 { # Represents a single metric value.
                   "moneyValue": { # Represents an amount of money with its currency type. # A money value.
-                    "units": "A String", # The whole units of the amount.
-                        # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
                     "nanos": 42, # Number of nano (10^-9) units of the amount.
                         # The value must be between -999,999,999 and +999,999,999 inclusive.
                         # If `units` is positive, `nanos` must be positive or zero.
                         # If `units` is zero, `nanos` can be positive, zero, or negative.
                         # If `units` is negative, `nanos` must be negative or zero.
                         # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                    "units": "A String", # The whole units of the amount.
+                        # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
                     "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
                   },
                   "labels": { # The labels describing the metric value.
@@ -1890,97 +2011,11 @@
               # Deprecated: Use quota_metrics to get per quota group limit exceeded status.
             "A String",
           ],
-          "quotaConsumed": { # Map of quota group name to the actual number of tokens consumed. If the
-              # quota check was not successful, then this will not be populated due to no
-              # quota consumption.
-              # Deprecated: Use quota_metrics to get per quota group usage.
-            "a_key": 42,
-          },
         },
         "operationId": "A String", # The Operation.operation_id value from the request.
       },
     ],
-    "reportErrors": [ # Partial failures, one for each `Operation` in the request that failed
-        # processing. There are three possible combinations of the RPC status:
-        #
-        # 1. The combination of a successful RPC status and an empty `report_errors`
-        #    list indicates a complete success where all `Operations` in the
-        #    request are processed successfully.
-        # 2. The combination of a successful RPC status and a non-empty
-        #    `report_errors` list indicates a partial success where some
-        #    `Operations` in the request succeeded. Each
-        #    `Operation` that failed processing has a corresponding item
-        #    in this list.
-        # 3. A failed RPC status indicates a general non-deterministic failure.
-        #    When this happens, it's impossible to know which of the
-        #    'Operations' in the request succeeded or failed.
-      { # Represents the processing error of one `Operation` in the request.
-        "status": { # The `Status` type defines a logical error model that is suitable for different # Details of the error when processing the `Operation`.
-            # programming environments, including REST APIs and RPC APIs. It is used by
-            # [gRPC](https://github.com/grpc). The error model is designed to be:
-            #
-            # - Simple to use and understand for most users
-            # - Flexible enough to meet unexpected needs
-            #
-            # # Overview
-            #
-            # The `Status` message contains three pieces of data: error code, error message,
-            # and error details. The error code should be an enum value of
-            # google.rpc.Code, but it may accept additional error codes if needed.  The
-            # error message should be a developer-facing English message that helps
-            # developers *understand* and *resolve* the error. If a localized user-facing
-            # error message is needed, put the localized message in the error details or
-            # localize it in the client. The optional error details may contain arbitrary
-            # information about the error. There is a predefined set of error detail types
-            # in the package `google.rpc` which can be used for common error conditions.
-            #
-            # # Language mapping
-            #
-            # The `Status` message is the logical representation of the error model, but it
-            # is not necessarily the actual wire format. When the `Status` message is
-            # exposed in different client libraries and different wire protocols, it can be
-            # mapped differently. For example, it will likely be mapped to some exceptions
-            # in Java, but more likely mapped to some error codes in C.
-            #
-            # # Other uses
-            #
-            # The error model and the `Status` message can be used in a variety of
-            # environments, either with or without APIs, to provide a
-            # consistent developer experience across different environments.
-            #
-            # Example uses of this error model include:
-            #
-            # - Partial errors. If a service needs to return partial errors to the client,
-            #     it may embed the `Status` in the normal response to indicate the partial
-            #     errors.
-            #
-            # - Workflow errors. A typical workflow has multiple steps. Each step may
-            #     have a `Status` message for error reporting purpose.
-            #
-            # - Batch operations. If a client uses batch request and batch response, the
-            #     `Status` message should be used directly inside batch response, one for
-            #     each error sub-response.
-            #
-            # - Asynchronous operations. If an API call embeds asynchronous operation
-            #     results in its response, the status of those operations should be
-            #     represented directly using the `Status` message.
-            #
-            # - Logging. If some API errors are stored in logs, the message `Status` could
-            #     be used directly after any stripping needed for security/privacy reasons.
-          "message": "A String", # A developer-facing error message, which should be in English. Any
-              # user-facing error message should be localized and sent in the
-              # google.rpc.Status.details field, or localized by the client.
-          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-          "details": [ # A list of messages that carry the error details.  There will be a
-              # common set of message types for APIs to use.
-            {
-              "a_key": "", # Properties of the object. Contains field @type with type URL.
-            },
-          ],
-        },
-        "operationId": "A String", # The Operation.operation_id value from the request.
-      },
-    ],
+    "serviceConfigId": "A String", # The actual config id used to process the request.
   }</pre>
 </div>
 
@@ -2041,14 +2076,14 @@
           "metricValues": [ # The values in this metric.
             { # Represents a single metric value.
               "moneyValue": { # Represents an amount of money with its currency type. # A money value.
-                "units": "A String", # The whole units of the amount.
-                    # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
                 "nanos": 42, # Number of nano (10^-9) units of the amount.
                     # The value must be between -999,999,999 and +999,999,999 inclusive.
                     # If `units` is positive, `nanos` must be positive or zero.
                     # If `units` is zero, `nanos` can be positive, zero, or negative.
                     # If `units` is negative, `nanos` must be negative or zero.
                     # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                "units": "A String", # The whole units of the amount.
+                    # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
                 "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
               },
               "labels": { # The labels describing the metric value.
@@ -2186,21 +2221,29 @@
     {
     "serviceConfigId": "A String", # ID of the actual config used to process the request.
     "quotaMetrics": [ # Metric values as tracked by One Platform before the start of
-        # reconciliation.
+        # reconciliation. The following metrics will be included:
+        #
+        # 1. Per quota metric total usage will be specified using the following gauge
+        # metric:
+        #   "serviceruntime.googleapis.com/allocation/consumer/quota_used_count"
+        #
+        # 2. Value for each quota limit associated with the metrics will be specified
+        # using the following gauge metric:
+        #   "serviceruntime.googleapis.com/quota/limit"
       { # Represents a set of metric values in the same metric.
           # Each metric value in the set should have a unique combination of start time,
           # end time, and label values.
         "metricValues": [ # The values in this metric.
           { # Represents a single metric value.
             "moneyValue": { # Represents an amount of money with its currency type. # A money value.
-              "units": "A String", # The whole units of the amount.
-                  # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
               "nanos": 42, # Number of nano (10^-9) units of the amount.
                   # The value must be between -999,999,999 and +999,999,999 inclusive.
                   # If `units` is positive, `nanos` must be positive or zero.
                   # If `units` is zero, `nanos` can be positive, zero, or negative.
                   # If `units` is negative, `nanos` must be negative or zero.
                   # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+              "units": "A String", # The whole units of the amount.
+                  # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
               "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
             },
             "labels": { # The labels describing the metric value.