{
  "title": "Service Control API",
  "kind": "discovery#restDescription",
  "discoveryVersion": "v1",
  "documentationLink": "https://cloud.google.com/service-control/",
  "basePath": "",
  "batchPath": "batch",
  "description": "Provides control plane functionality to managed services, such as logging, monitoring, and status checks.",
  "id": "servicecontrol:v1",
  "parameters": {
    "$.xgafv": {
      "enum": [
        "1",
        "2"
      ],
      "description": "V1 error format.",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "type": "string",
      "location": "query"
    },
    "callback": {
      "location": "query",
      "description": "JSONP",
      "type": "string"
    },
    "prettyPrint": {
      "default": "true",
      "location": "query",
      "description": "Returns response with indentations and line breaks.",
      "type": "boolean"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "fields": {
      "location": "query",
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response."
    },
    "quotaUser": {
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query",
      "type": "string"
    },
    "oauth_token": {
      "type": "string",
      "location": "query",
      "description": "OAuth 2.0 token for the current user."
    },
    "access_token": {
      "location": "query",
      "type": "string",
      "description": "OAuth access token."
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "alt": {
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "description": "Data format for response.",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "type": "string",
      "default": "json",
      "location": "query"
    },
    "key": {
      "location": "query",
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "type": "string"
    }
  },
  "protocol": "rest",
  "fullyEncodeReservedExpansion": true,
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/servicecontrol": {
          "description": "Manage your Google Service Control data"
        },
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "View and manage your data across Google Cloud Platform services"
        }
      }
    }
  },
  "baseUrl": "https://servicecontrol.googleapis.com/",
  "ownerName": "Google",
  "rootUrl": "https://servicecontrol.googleapis.com/",
  "servicePath": "",
  "revision": "20201025",
  "icons": {
    "x32": "http://www.google.com/images/icons/product/search-32.gif",
    "x16": "http://www.google.com/images/icons/product/search-16.gif"
  },
  "canonicalName": "Service Control",
  "version_module": true,
  "schemas": {
    "ConsumerInfo": {
      "description": "`ConsumerInfo` provides information about the consumer.",
      "id": "ConsumerInfo",
      "properties": {
        "consumerNumber": {
          "type": "string",
          "description": "The consumer identity number, can be Google cloud project number, folder number or organization number e.g. 1234567890. A value of 0 indicates no consumer number is found.",
          "format": "int64"
        },
        "type": {
          "enumDescriptions": [
            "This is never used.",
            "The consumer is a Google Cloud Project.",
            "The consumer is a Google Cloud Folder.",
            "The consumer is a Google Cloud Organization.",
            "Service-specific resource container which is defined by the service producer to offer their users the ability to manage service control functionalities at a finer level of granularity than the PROJECT."
          ],
          "description": "The type of the consumer which should have been defined in [Google Resource Manager](https://cloud.google.com/resource-manager/).",
          "type": "string",
          "enum": [
            "CONSUMER_TYPE_UNSPECIFIED",
            "PROJECT",
            "FOLDER",
            "ORGANIZATION",
            "SERVICE_SPECIFIC"
          ]
        },
        "projectNumber": {
          "format": "int64",
          "type": "string",
          "description": "The Google cloud project number, e.g. 1234567890. A value of 0 indicates no project number is found. NOTE: This field is deprecated after Chemist support flexible consumer id. New code should not depend on this field anymore."
        }
      },
      "type": "object"
    },
    "Request": {
      "type": "object",
      "description": "This message defines attributes for an HTTP request. If the actual request is not an HTTP request, the runtime system should try to map the actual request to an equivalent HTTP request.",
      "id": "Request",
      "properties": {
        "path": {
          "type": "string",
          "description": "The HTTP URL path."
        },
        "scheme": {
          "type": "string",
          "description": "The HTTP URL scheme, such as `http` and `https`."
        },
        "size": {
          "type": "string",
          "format": "int64",
          "description": "The HTTP request size in bytes. If unknown, it must be -1."
        },
        "time": {
          "type": "string",
          "description": "The timestamp when the `destination` service receives the first byte of the request.",
          "format": "google-datetime"
        },
        "id": {
          "description": "The unique ID for a request, which can be propagated to downstream systems. The ID should have low probability of collision within a single day for a specific service.",
          "type": "string"
        },
        "reason": {
          "type": "string",
          "description": "A special parameter for request reason. It is used by security systems to associate auditing information with a request."
        },
        "protocol": {
          "description": "The network protocol used with the request, such as \"http/1.1\", \"spdy/3\", \"h2\", \"h2c\", \"webrtc\", \"tcp\", \"udp\", \"quic\". See https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids for details.",
          "type": "string"
        },
        "auth": {
          "$ref": "Auth",
          "description": "The request authentication. May be absent for unauthenticated requests. Derived from the HTTP request `Authorization` header or equivalent."
        },
        "query": {
          "description": "The HTTP URL query in the format of `name1=value1&name2=value2`, as it appears in the first line of the HTTP request. No decoding is performed.",
          "type": "string"
        },
        "method": {
          "description": "The HTTP request method, such as `GET`, `POST`.",
          "type": "string"
        },
        "host": {
          "description": "The HTTP request `Host` header value.",
          "type": "string"
        },
        "headers": {
          "type": "object",
          "description": "The HTTP request headers. If multiple headers share the same key, they must be merged according to the HTTP spec. All header keys must be lowercased, because HTTP header keys are case-insensitive.",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "MetricValue": {
      "type": "object",
      "description": "Represents a single metric value.",
      "properties": {
        "startTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "The start of the time period over which this metric value's measurement applies. The time period has different semantics for different metric types (cumulative, delta, and gauge). See the metric definition documentation in the service configuration for details. If not specified, google.api.servicecontrol.v1.Operation.start_time will be used."
        },
        "endTime": {
          "description": "The end of the time period over which this metric value's measurement applies. If not specified, google.api.servicecontrol.v1.Operation.end_time will be used.",
          "type": "string",
          "format": "google-datetime"
        },
        "moneyValue": {
          "$ref": "Money",
          "description": "A money value."
        },
        "doubleValue": {
          "type": "number",
          "format": "double",
          "description": "A double precision floating point value."
        },
        "labels": {
          "type": "object",
          "description": "The labels describing the metric value. See comments on google.api.servicecontrol.v1.Operation.labels for the overriding relationship. Note that this map must not contain monitored resource labels.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "stringValue": {
          "description": "A text string value.",
          "type": "string"
        },
        "boolValue": {
          "type": "boolean",
          "description": "A boolean value."
        },
        "distributionValue": {
          "$ref": "Distribution",
          "description": "A distribution value."
        },
        "int64Value": {
          "description": "A signed 64-bit integer value.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "MetricValue"
    },
    "ReportResponse": {
      "properties": {
        "serviceRolloutId": {
          "type": "string",
          "description": "The current service rollout id used to process the request."
        },
        "reportInfos": {
          "description": "Quota usage for each quota release `Operation` request. Fully or partially failed quota release request may or may not be present in `report_quota_info`. For example, a failed quota release request will have the current quota usage info when precise quota library returns the info. A deadline exceeded quota request will not have quota usage info. If there is no quota release request, report_quota_info will be empty. ",
          "items": {
            "$ref": "ReportInfo"
          },
          "type": "array"
        },
        "reportErrors": {
          "type": "array",
          "description": "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.",
          "items": {
            "$ref": "ReportError"
          }
        },
        "serviceConfigId": {
          "type": "string",
          "description": "The actual config id used to process the request."
        }
      },
      "type": "object",
      "id": "ReportResponse",
      "description": "Response message for the Report method."
    },
    "TraceSpan": {
      "properties": {
        "childSpanCount": {
          "format": "int32",
          "type": "integer",
          "description": "An optional number of child spans that were generated while this span was active. If set, allows implementation to detect missing child spans."
        },
        "attributes": {
          "$ref": "Attributes",
          "description": "A set of attributes on the span. You can have up to 32 attributes per span."
        },
        "startTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "The start time of the span. On the client side, this is the time kept by the local machine where the span execution starts. On the server side, this is the time when the server's application handler starts running."
        },
        "sameProcessAsParentSpan": {
          "type": "boolean",
          "description": "(Optional) Set this parameter to indicate whether this span is in the same process as its parent. If you do not set this parameter, Stackdriver Trace is unable to take advantage of this helpful information."
        },
        "spanId": {
          "type": "string",
          "description": "The [SPAN_ID] portion of the span's resource name."
        },
        "parentSpanId": {
          "type": "string",
          "description": "The [SPAN_ID] of this span's parent span. If this is a root span, then this field must be empty."
        },
        "name": {
          "description": "The resource name of the span in the following format: projects/[PROJECT_ID]/traces/[TRACE_ID]/spans/SPAN_ID is a unique identifier for a trace within a project; it is a 32-character hexadecimal encoding of a 16-byte array. [SPAN_ID] is a unique identifier for a span within a trace; it is a 16-character hexadecimal encoding of an 8-byte array.",
          "type": "string"
        },
        "displayName": {
          "$ref": "TruncatableString",
          "description": "A description of the span's operation (up to 128 bytes). Stackdriver Trace displays the description in the Google Cloud Platform Console. For example, the display name can be a qualified method name or a file name and a line number where the operation is called. A best practice is to use the same display name within an application and at the same call point. This makes it easier to correlate spans in different traces."
        },
        "spanKind": {
          "enumDescriptions": [
            "Unspecified. Do NOT use as default. Implementations MAY assume SpanKind.INTERNAL to be default.",
            "Indicates that the span is used internally. Default value.",
            "Indicates that the span covers server-side handling of an RPC or other remote network request.",
            "Indicates that the span covers the client-side wrapper around an RPC or other remote request.",
            "Indicates that the span describes producer sending a message to a broker. Unlike client and server, there is no direct critical path latency relationship between producer and consumer spans (e.g. publishing a message to a pubsub service).",
            "Indicates that the span describes consumer receiving a message from a broker. Unlike client and server, there is no direct critical path latency relationship between producer and consumer spans (e.g. receiving a message from a pubsub service subscription)."
          ],
          "enum": [
            "SPAN_KIND_UNSPECIFIED",
            "INTERNAL",
            "SERVER",
            "CLIENT",
            "PRODUCER",
            "CONSUMER"
          ],
          "type": "string",
          "description": "Distinguishes between spans generated in a particular context. For example, two spans with the same name may be distinguished using `CLIENT` (caller) and `SERVER` (callee) to identify an RPC call."
        },
        "endTime": {
          "description": "The end time of the span. On the client side, this is the time kept by the local machine where the span execution ends. On the server side, this is the time when the server application handler stops running.",
          "type": "string",
          "format": "google-datetime"
        },
        "status": {
          "description": "An optional final status for this span.",
          "$ref": "Status"
        }
      },
      "type": "object",
      "id": "TraceSpan",
      "description": "A span represents a single operation within a trace. Spans can be nested to form a trace tree. Often, a trace contains a root span that describes the end-to-end latency, and one or more subspans for its sub-operations. A trace can also contain multiple root spans, or none at all. Spans do not need to be contiguous—there may be gaps or overlaps between spans in a trace."
    },
    "Attributes": {
      "description": "A set of attributes, each in the format `[KEY]:[VALUE]`.",
      "type": "object",
      "properties": {
        "attributeMap": {
          "type": "object",
          "additionalProperties": {
            "$ref": "AttributeValue"
          },
          "description": "The set of attributes. Each attribute's key can be up to 128 bytes long. The value can be a string up to 256 bytes, a signed 64-bit integer, or the Boolean values `true` and `false`. For example: \"/instance_id\": \"my-instance\" \"/http/user_agent\": \"\" \"/http/request_bytes\": 300 \"abc.com/myattribute\": true"
        },
        "droppedAttributesCount": {
          "format": "int32",
          "type": "integer",
          "description": "The number of attributes that were discarded. Attributes can be discarded because their keys are too long or because there are too many attributes. If this value is 0 then all attributes are valid."
        }
      },
      "id": "Attributes"
    },
    "AllocateInfo": {
      "type": "object",
      "id": "AllocateInfo",
      "properties": {
        "unusedArguments": {
          "description": "A list of label keys that were unused by the server in processing the request. Thus, for similar requests repeated in a certain future time window, the caller can choose to ignore these labels in the requests to achieve better client-side cache hits and quota aggregation for rate quota. This field is not populated for allocation quota checks.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "ReportInfo": {
      "id": "ReportInfo",
      "type": "object",
      "properties": {
        "operationId": {
          "type": "string",
          "description": "The Operation.operation_id value from the request."
        },
        "quotaInfo": {
          "description": "Quota usage info when processing the `Operation`.",
          "$ref": "QuotaInfo"
        }
      },
      "description": "Contains additional info about the report operation."
    },
    "AuditLog": {
      "properties": {
        "response": {
          "type": "object",
          "description": "The operation response. This may not include all response elements, such as those that are too large, privacy-sensitive, or duplicated elsewhere in the log record. It should never include user-generated data, such as file contents. When the JSON object represented here has a proto equivalent, the proto name will be indicated in the `@type` property.",
          "additionalProperties": {
            "description": "Properties of the object.",
            "type": "any"
          }
        },
        "status": {
          "$ref": "Status",
          "description": "The status of the overall operation."
        },
        "methodName": {
          "type": "string",
          "description": "The name of the service method or operation. For API calls, this should be the name of the API method. For example, \"google.cloud.bigquery.v2.TableService.InsertTable\" \"google.logging.v2.ConfigServiceV2.CreateSink\""
        },
        "serviceData": {
          "description": "Deprecated. Use the `metadata` field instead. Other service-specific data about the request, response, and other activities.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "type": "object"
        },
        "authenticationInfo": {
          "description": "Authentication information.",
          "$ref": "AuthenticationInfo"
        },
        "metadata": {
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object."
          },
          "description": "Other service-specific data about the request, response, and other information associated with the current audited event.",
          "type": "object"
        },
        "serviceName": {
          "description": "The name of the API service performing the operation. For example, `\"compute.googleapis.com\"`.",
          "type": "string"
        },
        "resourceName": {
          "description": "The resource or collection that is the target of the operation. The name is a scheme-less URI, not including the API service name. For example: \"projects/PROJECT_ID/zones/us-central1-a/instances\" \"projects/PROJECT_ID/datasets/DATASET_ID\"",
          "type": "string"
        },
        "request": {
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object."
          },
          "type": "object",
          "description": "The operation request. This may not include all request parameters, such as those that are too large, privacy-sensitive, or duplicated elsewhere in the log record. It should never include user-generated data, such as file contents. When the JSON object represented here has a proto equivalent, the proto name will be indicated in the `@type` property."
        },
        "numResponseItems": {
          "description": "The number of items returned from a List or Query API method, if applicable.",
          "type": "string",
          "format": "int64"
        },
        "resourceOriginalState": {
          "description": "The resource's original state before mutation. Present only for operations which have successfully modified the targeted resource(s). In general, this field should contain all changed fields, except those that are already been included in `request`, `response`, `metadata` or `service_data` fields. When the JSON object represented here has a proto equivalent, the proto name will be indicated in the `@type` property.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object."
          },
          "type": "object"
        },
        "authorizationInfo": {
          "type": "array",
          "items": {
            "$ref": "AuthorizationInfo"
          },
          "description": "Authorization information. If there are multiple resources or permissions involved, then there is one AuthorizationInfo element for each {resource, permission} tuple."
        },
        "requestMetadata": {
          "description": "Metadata about the operation.",
          "$ref": "RequestMetadata"
        },
        "resourceLocation": {
          "$ref": "ResourceLocation",
          "description": "The resource location information."
        }
      },
      "id": "AuditLog",
      "description": "Common audit log format for Google Cloud Platform API operations. ",
      "type": "object"
    },
    "Distribution": {
      "properties": {
        "exemplars": {
          "description": "Example points. Must be in increasing order of `value` field.",
          "type": "array",
          "items": {
            "$ref": "Exemplar"
          }
        },
        "count": {
          "type": "string",
          "format": "int64",
          "description": "The total number of samples in the distribution. Must be \u003e= 0."
        },
        "sumOfSquaredDeviation": {
          "format": "double",
          "description": "The sum of squared deviations from the mean: Sum[i=1..count]((x_i - mean)^2) where each x_i is a sample values. If `count` is zero then this field must be zero, otherwise validation of the request fails.",
          "type": "number"
        },
        "exponentialBuckets": {
          "description": "Buckets with exponentially growing width.",
          "$ref": "ExponentialBuckets"
        },
        "linearBuckets": {
          "$ref": "LinearBuckets",
          "description": "Buckets with constant width."
        },
        "bucketCounts": {
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "The number of samples in each histogram bucket. `bucket_counts` are optional. If present, they must sum to the `count` value. The buckets are defined below in `bucket_option`. There are N buckets. `bucket_counts[0]` is the number of samples in the underflow bucket. `bucket_counts[1]` to `bucket_counts[N-1]` are the numbers of samples in each of the finite buckets. And `bucket_counts[N] is the number of samples in the overflow bucket. See the comments of `bucket_option` below for more details. Any suffix of trailing zeros may be omitted.",
          "type": "array"
        },
        "explicitBuckets": {
          "$ref": "ExplicitBuckets",
          "description": "Buckets with arbitrary user-provided width."
        },
        "minimum": {
          "type": "number",
          "format": "double",
          "description": "The minimum of the population of values. Ignored if `count` is zero."
        },
        "maximum": {
          "description": "The maximum of the population of values. Ignored if `count` is zero.",
          "format": "double",
          "type": "number"
        },
        "mean": {
          "type": "number",
          "description": "The arithmetic mean of the samples in the distribution. If `count` is zero then this field must be zero.",
          "format": "double"
        }
      },
      "description": "Distribution represents a frequency distribution of double-valued sample points. It contains the size of the population of sample points plus additional optional information: - the arithmetic mean of the samples - the minimum and maximum of the samples - the sum-squared-deviation of the samples, used to compute variance - a histogram of the values of the sample points",
      "id": "Distribution",
      "type": "object"
    },
    "HttpRequest": {
      "description": "A common proto for logging HTTP requests. Only contains semantics defined by the HTTP specification. Product-specific logging information MUST be defined in a separate message.",
      "id": "HttpRequest",
      "properties": {
        "responseSize": {
          "format": "int64",
          "type": "string",
          "description": "The size of the HTTP response message sent back to the client, in bytes, including the response headers and the response body."
        },
        "userAgent": {
          "type": "string",
          "description": "The user agent sent by the client. Example: `\"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)\"`."
        },
        "requestUrl": {
          "type": "string",
          "description": "The scheme (http, https), the host name, the path, and the query portion of the URL that was requested. Example: `\"http://example.com/some/info?color=red\"`."
        },
        "cacheLookup": {
          "description": "Whether or not a cache lookup was attempted.",
          "type": "boolean"
        },
        "requestSize": {
          "description": "The size of the HTTP request message in bytes, including the request headers and the request body.",
          "type": "string",
          "format": "int64"
        },
        "requestMethod": {
          "type": "string",
          "description": "The request method. Examples: `\"GET\"`, `\"HEAD\"`, `\"PUT\"`, `\"POST\"`."
        },
        "serverIp": {
          "type": "string",
          "description": "The IP address (IPv4 or IPv6) of the origin server that the request was sent to."
        },
        "remoteIp": {
          "type": "string",
          "description": "The IP address (IPv4 or IPv6) of the client that issued the HTTP request. Examples: `\"192.168.1.1\"`, `\"FE80::0202:B3FF:FE1E:8329\"`."
        },
        "latency": {
          "description": "The request processing latency on the server, from the time the request was received until the response was sent.",
          "type": "string",
          "format": "google-duration"
        },
        "cacheHit": {
          "type": "boolean",
          "description": "Whether or not an entity was served from cache (with or without validation)."
        },
        "cacheValidatedWithOriginServer": {
          "description": "Whether or not the response was validated with the origin server before being served from cache. This field is only meaningful if `cache_hit` is True.",
          "type": "boolean"
        },
        "cacheFillBytes": {
          "type": "string",
          "format": "int64",
          "description": "The number of HTTP response bytes inserted into cache. Set only when a cache fill was attempted."
        },
        "referer": {
          "description": "The referer URL of the request, as defined in [HTTP/1.1 Header Field Definitions](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).",
          "type": "string"
        },
        "protocol": {
          "description": "Protocol used for the request. Examples: \"HTTP/1.1\", \"HTTP/2\", \"websocket\"",
          "type": "string"
        },
        "status": {
          "format": "int32",
          "description": "The response code indicating the status of the response. Examples: 200, 404.",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "QuotaInfo": {
      "description": "Contains the quota information for a quota check response.",
      "id": "QuotaInfo",
      "type": "object",
      "properties": {
        "quotaConsumed": {
          "type": "object",
          "additionalProperties": {
            "type": "integer",
            "format": "int32"
          },
          "description": "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. We are not merging this field with 'quota_metrics' field because of the complexity of scaling in Chemist client code base. For simplicity, we will keep this field for Castor (that scales quota usage) and 'quota_metrics' for SuperQuota (that doesn't scale quota usage). "
        },
        "limitExceeded": {
          "description": "Quota Metrics that have exceeded quota limits. For QuotaGroup-based quota, this is QuotaGroup.name For QuotaLimit-based quota, this is QuotaLimit.name See: google.api.Quota Deprecated: Use quota_metrics to get per quota group limit exceeded status.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "quotaMetrics": {
          "type": "array",
          "description": "Quota metrics to indicate the usage. Depending on the check request, one or more of the following metrics will be included: 1. For rate quota, per quota group or per quota metric incremental usage will be specified using the following delta metric: \"serviceruntime.googleapis.com/api/consumer/quota_used_count\" 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 both rate quota and allocation quota, the quota limit reached condition will be specified using the following boolean metric: \"serviceruntime.googleapis.com/quota/exceeded\"",
          "items": {
            "$ref": "MetricValueSet"
          }
        }
      }
    },
    "QuotaOperation": {
      "type": "object",
      "id": "QuotaOperation",
      "description": "Represents information regarding a quota operation.",
      "properties": {
        "consumerId": {
          "description": "Identity of the consumer for whom this quota operation is being performed. This can be in one of the following formats: project:, project_number:, api_key:.",
          "type": "string"
        },
        "quotaMode": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "NORMAL",
            "BEST_EFFORT",
            "CHECK_ONLY",
            "QUERY_ONLY",
            "ADJUST_ONLY"
          ],
          "enumDescriptions": [
            "Guard against implicit default. Must not be used.",
            "For AllocateQuota request, allocates quota for the amount specified in the service configuration or specified using the quota metrics. If the amount is higher than the available quota, allocation error will be returned and no quota will be allocated. If multiple quotas are part of the request, and one fails, none of the quotas are allocated or released.",
            "The operation allocates quota for the amount specified in the service configuration or specified using the quota metrics. If the amount is higher than the available quota, request does not fail but all available quota will be allocated. For rate quota, BEST_EFFORT will continue to deduct from other groups even if one does not have enough quota. For allocation, it will find the minimum available amount across all groups and deduct that amount from all the affected groups.",
            "For AllocateQuota request, only checks if there is enough quota available and does not change the available quota. No lock is placed on the available quota either.",
            "Unimplemented. When used in AllocateQuotaRequest, this returns the effective quota limit(s) in the response, and no quota check will be performed. Not supported for other requests, and even for AllocateQuotaRequest, this is currently supported only for allowlisted services.",
            "The operation allocates quota for the amount specified in the service configuration or specified using the quota metrics. If the requested amount is higher than the available quota, request does not fail and remaining quota would become negative (going over the limit). Not supported for Rate Quota."
          ],
          "description": "Quota mode for this operation."
        },
        "quotaMetrics": {
          "items": {
            "$ref": "MetricValueSet"
          },
          "description": "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 the data type specified in the metric definition. Within a single operation, it is not allowed to have more than one MetricValue instances that have the same metric names and identical label value combinations. If a request has such duplicated MetricValue instances, the entire request is rejected with an invalid argument error. This field is mutually exclusive with method_name.",
          "type": "array"
        },
        "operationId": {
          "type": "string",
          "description": "Identity of the operation. This is expected to be unique within the scope of the service that generated the operation, and guarantees idempotency in case of retries. In order to ensure best performance and latency in the Quota backends, operation_ids are optimally associated with time, so that related operations can be accessed fast in storage. For this reason, the recommended token for services that intend to operate at a high QPS is Unix time in nanos + UUID"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels describing the operation.",
          "type": "object"
        },
        "methodName": {
          "description": "Fully qualified name of the API method for which this quota operation is requested. This name is used for matching quota rules or metric rules and billing status rules defined in service configuration. This field should not be set if any of the following is true: (1) the quota operation is performed on non-API resources. (2) quota_metrics is set because the caller is doing quota override. Example of an RPC method name: google.example.library.v1.LibraryService.CreateShelf",
          "type": "string"
        }
      }
    },
    "Resource": {
      "id": "Resource",
      "type": "object",
      "description": "This message defines core attributes for a resource. A resource is an addressable (named) entity provided by the destination service. For example, a file stored on a network storage service.",
      "properties": {
        "service": {
          "description": "The name of the service that this resource belongs to, such as `pubsub.googleapis.com`. The service may be different from the DNS hostname that actually serves the request.",
          "type": "string"
        },
        "name": {
          "description": "The stable identifier (name) of a resource on the `service`. A resource can be logically identified as \"//{resource.service}/{resource.name}\". The differences between a resource name and a URI are: * Resource name is a logical identifier, independent of network protocol and API version. For example, `//pubsub.googleapis.com/projects/123/topics/news-feed`. * URI often includes protocol and version information, so it can be used directly by applications. For example, `https://pubsub.googleapis.com/v1/projects/123/topics/news-feed`. See https://cloud.google.com/apis/design/resource_names for details.",
          "type": "string"
        },
        "uid": {
          "description": "The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.",
          "type": "string"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The labels or tags on the resource, such as AWS resource tags and Kubernetes resource labels."
        },
        "type": {
          "description": "The type of the resource. The syntax is platform-specific because different platforms define their resources differently. For Google APIs, the type format must be \"{service}/{kind}\".",
          "type": "string"
        },
        "deleteTime": {
          "description": "Output only. The timestamp when the resource was deleted. If the resource is not deleted, this must be empty.",
          "format": "google-datetime",
          "type": "string"
        },
        "displayName": {
          "type": "string",
          "description": "Mutable. The display name set by clients. Must be \u003c= 63 characters."
        },
        "createTime": {
          "description": "Output only. The timestamp when the resource was created. This may be either the time creation was initiated or when it was completed.",
          "type": "string",
          "format": "google-datetime"
        },
        "etag": {
          "type": "string",
          "description": "Output only. An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written."
        },
        "annotations": {
          "description": "Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "updateTime": {
          "description": "Output only. The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.",
          "format": "google-datetime",
          "type": "string"
        }
      }
    },
    "ReportRequest": {
      "type": "object",
      "id": "ReportRequest",
      "properties": {
        "serviceConfigId": {
          "type": "string",
          "description": "Specifies which version of service config should be used to process the request. If unspecified or no matching version can be found, the latest one will be used."
        },
        "operations": {
          "description": "Operations to be reported. Typically the service should report one operation per request. Putting multiple operations into a single request is allowed, but should be used only when multiple operations are natually available at the time of the report. There is no limit on the number of operations in the same ReportRequest, however the ReportRequest size should be no larger than 1MB. See ReportResponse.report_errors for partial failure behavior.",
          "type": "array",
          "items": {
            "$ref": "Operation"
          }
        }
      },
      "description": "Request message for the Report method."
    },
    "QuotaError": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "Free-form text that provides details on the cause of the error."
        },
        "subject": {
          "type": "string",
          "description": "Subject to whom this error applies. See the specific enum for more details on this field. For example, \"clientip:\" or \"project:\"."
        },
        "code": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_EXHAUSTED",
            "OUT_OF_RANGE",
            "BILLING_NOT_ACTIVE",
            "PROJECT_DELETED",
            "API_KEY_INVALID",
            "API_KEY_EXPIRED",
            "SPATULA_HEADER_INVALID",
            "LOAS_ROLE_INVALID",
            "NO_LOAS_PROJECT",
            "PROJECT_STATUS_UNAVAILABLE",
            "SERVICE_STATUS_UNAVAILABLE",
            "BILLING_STATUS_UNAVAILABLE",
            "QUOTA_SYSTEM_UNAVAILABLE"
          ],
          "enumDescriptions": [
            "This is never used.",
            "Quota allocation failed. Same as google.rpc.Code.RESOURCE_EXHAUSTED.",
            "Quota release failed. This error is ONLY returned on a NORMAL release. More formally: if a user requests a release of 10 tokens, but only 5 tokens were previously allocated, in a BEST_EFFORT release, this will be considered a success, 5 tokens will be released, and the result will be \"Ok\". If this is done in NORMAL mode, no tokens will be released, and an OUT_OF_RANGE error will be returned. Same as google.rpc.Code.OUT_OF_RANGE.",
            "Consumer cannot access the service because the service requires active billing.",
            "Consumer's project has been marked as deleted (soft deletion).",
            "Specified API key is invalid.",
            "Specified API Key has expired.",
            "Consumer's spatula header is invalid.",
            "The consumer's LOAS role is invalid.",
            "The consumer's LOAS role has no associated project.",
            "The backend server for looking up project id/number is unavailable.",
            "The backend server for checking service status is unavailable.",
            "The backend server for checking billing status is unavailable.",
            "The backend server for checking quota limits is unavailable."
          ],
          "description": "Error code."
        },
        "status": {
          "description": "Contains additional information about the quota error. If available, `status.code` will be non zero.",
          "$ref": "Status"
        }
      },
      "id": "QuotaError",
      "description": "Represents error information for QuotaOperation."
    },
    "CheckInfo": {
      "id": "CheckInfo",
      "description": "Contains additional information about the check operation.",
      "type": "object",
      "properties": {
        "unusedArguments": {
          "items": {
            "type": "string"
          },
          "description": "A list of fields and label keys that are ignored by the server. The client doesn't need to send them for following requests to improve performance and allow better aggregation.",
          "type": "array"
        },
        "consumerInfo": {
          "description": "Consumer info of this check.",
          "$ref": "ConsumerInfo"
        }
      }
    },
    "Money": {
      "description": "Represents an amount of money with its currency type.",
      "properties": {
        "nanos": {
          "format": "int32",
          "description": "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.",
          "type": "integer"
        },
        "currencyCode": {
          "description": "The three-letter currency code defined in ISO 4217.",
          "type": "string"
        },
        "units": {
          "description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "Money",
      "type": "object"
    },
    "FirstPartyPrincipal": {
      "description": "First party identity principal.",
      "properties": {
        "principalEmail": {
          "type": "string",
          "description": "The email address of a Google account. ."
        },
        "serviceMetadata": {
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object."
          },
          "description": "Metadata about the service that uses the service account. .",
          "type": "object"
        }
      },
      "type": "object",
      "id": "FirstPartyPrincipal"
    },
    "Exemplar": {
      "properties": {
        "attachments": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL.",
              "type": "any"
            }
          },
          "description": "Contextual information about the example value. Examples are: Trace: type.googleapis.com/google.monitoring.v3.SpanContext Literal string: type.googleapis.com/google.protobuf.StringValue Labels dropped during aggregation: type.googleapis.com/google.monitoring.v3.DroppedLabels There may be only a single attachment of any given message type in a single exemplar, and this is enforced by the system."
        },
        "value": {
          "format": "double",
          "type": "number",
          "description": "Value of the exemplar point. This value determines to which bucket the exemplar belongs."
        },
        "timestamp": {
          "description": "The observation (sampling) time of the above value.",
          "format": "google-datetime",
          "type": "string"
        }
      },
      "description": "Exemplars are example points that may be used to annotate aggregated distribution values. They are metadata that gives information about a particular value added to a Distribution bucket, such as a trace ID that was active when a value was added. They may contain further information, such as a example values and timestamps, origin, etc.",
      "type": "object",
      "id": "Exemplar"
    },
    "MetricValueSet": {
      "type": "object",
      "description": "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.",
      "properties": {
        "metricValues": {
          "type": "array",
          "items": {
            "$ref": "MetricValue"
          },
          "description": "The values in this metric."
        },
        "metricName": {
          "type": "string",
          "description": "The metric name defined in the service configuration."
        }
      },
      "id": "MetricValueSet"
    },
    "Status": {
      "id": "Status",
      "type": "object",
      "properties": {
        "details": {
          "type": "array",
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "items": {
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL.",
              "type": "any"
            },
            "type": "object"
          }
        },
        "message": {
          "type": "string",
          "description": "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": {
          "format": "int32",
          "type": "integer",
          "description": "The status code, which should be an enum value of google.rpc.Code."
        }
      },
      "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors)."
    },
    "ResourceLocation": {
      "properties": {
        "originalLocations": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The locations of a resource prior to the execution of the operation. Requests that mutate the resource's location must populate both the 'original_locations' as well as the 'current_locations' fields. For example: \"europe-west1-a\" \"us-east1\" \"nam3\""
        },
        "currentLocations": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The locations of a resource after the execution of the operation. Requests to create or delete a location based resource must populate the 'current_locations' field and not the 'original_locations' field. For example: \"europe-west1-a\" \"us-east1\" \"nam3\""
        }
      },
      "id": "ResourceLocation",
      "type": "object",
      "description": "Location information about a resource."
    },
    "Operation": {
      "description": "Represents information regarding an operation.",
      "properties": {
        "traceSpans": {
          "items": {
            "$ref": "TraceSpan"
          },
          "description": "Unimplemented. A list of Cloud Trace spans. The span names shall contain the id of the destination project which can be either the produce or the consumer project.",
          "type": "array"
        },
        "userLabels": {
          "description": "User defined labels for the resource that this operation is associated with. Only a combination of 1000 user labels per consumer project are allowed.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "logEntries": {
          "type": "array",
          "items": {
            "$ref": "LogEntry"
          },
          "description": "Represents information to be logged."
        },
        "metricValueSets": {
          "items": {
            "$ref": "MetricValueSet"
          },
          "description": "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 the data type specified in the metric definition. Within a single operation, it is not allowed to have more than one MetricValue instances that have the same metric names and identical label value combinations. If a request has such duplicated MetricValue instances, the entire request is rejected with an invalid argument error.",
          "type": "array"
        },
        "operationName": {
          "description": "Fully qualified name of the operation. Reserved for future use.",
          "type": "string"
        },
        "startTime": {
          "description": "Required. Start time of the operation.",
          "format": "google-datetime",
          "type": "string"
        },
        "consumerId": {
          "type": "string",
          "description": "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 not related to a specific consumer. - This can be in one of the following formats: - project:PROJECT_ID, - project`_`number:PROJECT_NUMBER, - projects/PROJECT_ID or PROJECT_NUMBER, - folders/FOLDER_NUMBER, - organizations/ORGANIZATION_NUMBER, - api`_`key:API_KEY."
        },
        "importance": {
          "type": "string",
          "description": "DO NOT USE. This is an experimental field.",
          "enum": [
            "LOW",
            "HIGH",
            "DEBUG"
          ],
          "enumDescriptions": [
            "The API implementation may cache and aggregate the data. The data may be lost when rare and unexpected system failures occur.",
            "The API implementation doesn't cache and aggregate the data. If the method returns successfully, it's guaranteed that the data has been persisted in durable storage.",
            "In addition to the behavior described in HIGH, DEBUG enables additional validation logic that is only useful during the onboarding process. This is only available to Google internal services and the service must be allowlisted by chemist-dev@google.com in order to use this level."
          ]
        },
        "operationId": {
          "description": "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 the same id. UUID version 4 is recommended, though not required. In scenarios where an operation is computed from existing information and an idempotent id is desirable for deduplication purpose, UUID version 5 is recommended. See RFC 4122 for details.",
          "type": "string"
        },
        "quotaProperties": {
          "$ref": "QuotaProperties",
          "description": "Represents the properties needed for quota check. Applicable only if this operation is for a quota check request. If this is not specified, no quota check will be performed."
        },
        "endTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "End time of the operation. Required when the operation is used in ServiceController.Report, but optional when the operation is used in ServiceController.Check."
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "description": "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, such as App Engine, Compute Engine, or Kubernetes Engine."
        },
        "extensions": {
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          },
          "type": "array",
          "description": "Unimplemented."
        },
        "resources": {
          "type": "array",
          "items": {
            "$ref": "ResourceInfo"
          },
          "description": "The resources that are involved in the operation. The maximum supported number of entries in this field is 100."
        }
      },
      "id": "Operation",
      "type": "object"
    },
    "CheckResponse": {
      "properties": {
        "quotaInfo": {
          "description": "Quota information for the check request associated with this response. ",
          "$ref": "QuotaInfo"
        },
        "checkErrors": {
          "type": "array",
          "items": {
            "$ref": "CheckError"
          },
          "description": "Indicate the decision of the check. If no check errors are present, the service should process the operation. Otherwise the service should use the list of errors to determine the appropriate action."
        },
        "serviceConfigId": {
          "description": "The actual config id used to process the request.",
          "type": "string"
        },
        "serviceRolloutId": {
          "description": "The current service rollout id used to process the request.",
          "type": "string"
        },
        "operationId": {
          "type": "string",
          "description": "The same operation_id value used in the CheckRequest. Used for logging and diagnostics purposes."
        },
        "checkInfo": {
          "$ref": "CheckInfo",
          "description": "Feedback data returned from the server during processing a Check request."
        }
      },
      "type": "object",
      "description": "Response message for the Check method.",
      "id": "CheckResponse"
    },
    "LogEntrySourceLocation": {
      "id": "LogEntrySourceLocation",
      "type": "object",
      "description": "Additional information about the source code location that produced the log entry.",
      "properties": {
        "line": {
          "type": "string",
          "description": "Optional. Line within the source file. 1-based; 0 indicates no line number available.",
          "format": "int64"
        },
        "function": {
          "type": "string",
          "description": "Optional. Human-readable name of the function or method being invoked, with optional context such as the class or package name. This information may be used in contexts such as the logs viewer, where a file and line number are less meaningful. The format can vary by language. For example: `qual.if.ied.Class.method` (Java), `dir/package.func` (Go), `function` (Python)."
        },
        "file": {
          "description": "Optional. Source file name. Depending on the runtime environment, this might be a simple name or a fully-qualified name.",
          "type": "string"
        }
      }
    },
    "AuthenticationInfo": {
      "description": "Authentication information for the operation.",
      "properties": {
        "principalSubject": {
          "type": "string",
          "description": "String representation of identity of requesting party. Populated for both first and third party identities."
        },
        "thirdPartyPrincipal": {
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object."
          },
          "type": "object",
          "description": "The third party identification (if any) of the authenticated user making the request. When the JSON object represented here has a proto equivalent, the proto name will be indicated in the `@type` property."
        },
        "authoritySelector": {
          "description": "The authority selector specified by the requestor, if any. It is not guaranteed that the principal was allowed to use this authority.",
          "type": "string"
        },
        "serviceAccountKeyName": {
          "type": "string",
          "description": "The name of the service account key used to create or exchange credentials for authenticating the service account making the request. This is a scheme-less URI full resource name. For example: \"//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}\""
        },
        "serviceAccountDelegationInfo": {
          "description": "Identity delegation history of an authenticated service account that makes the request. It contains information on the real authorities that try to access GCP resources by delegating on a service account. When multiple authorities present, they are guaranteed to be sorted based on the original ordering of the identity delegation events.",
          "type": "array",
          "items": {
            "$ref": "ServiceAccountDelegationInfo"
          }
        },
        "principalEmail": {
          "description": "The email address of the authenticated user (or service account on behalf of third party principal) making the request. For third party identity callers, the `principal_subject` field is populated instead of this field. For privacy reasons, the principal email address is sometimes redacted. For more information, see [Caller identities in audit logs](https://cloud.google.com/logging/docs/audit#user-id).",
          "type": "string"
        }
      },
      "id": "AuthenticationInfo",
      "type": "object"
    },
    "CheckRequest": {
      "description": "Request message for the Check method.",
      "properties": {
        "serviceConfigId": {
          "type": "string",
          "description": "Specifies which version of service configuration should be used to process the request. If unspecified or no matching version can be found, the latest one will be used."
        },
        "skipActivationCheck": {
          "type": "boolean",
          "description": "Indicates if service activation check should be skipped for this request. Default behavior is to perform the check and apply relevant quota. WARNING: Setting this flag to \"true\" will disable quota enforcement."
        },
        "operation": {
          "$ref": "Operation",
          "description": "The operation to be checked."
        },
        "requestProjectSettings": {
          "description": "Requests the project settings to be returned as part of the check response.",
          "type": "boolean"
        }
      },
      "id": "CheckRequest",
      "type": "object"
    },
    "LogEntryOperation": {
      "properties": {
        "producer": {
          "description": "Optional. An arbitrary producer identifier. The combination of `id` and `producer` must be globally unique. Examples for `producer`: `\"MyDivision.MyBigCompany.com\"`, `\"github.com/MyProject/MyApplication\"`.",
          "type": "string"
        },
        "last": {
          "type": "boolean",
          "description": "Optional. Set this to True if this is the last log entry in the operation."
        },
        "id": {
          "type": "string",
          "description": "Optional. An arbitrary operation identifier. Log entries with the same identifier are assumed to be part of the same operation."
        },
        "first": {
          "description": "Optional. Set this to True if this is the first log entry in the operation.",
          "type": "boolean"
        }
      },
      "description": "Additional information about a potentially long-running operation with which a log entry is associated.",
      "type": "object",
      "id": "LogEntryOperation"
    },
    "TruncatableString": {
      "properties": {
        "truncatedByteCount": {
          "description": "The number of bytes removed from the original string. If this value is 0, then the string was not shortened.",
          "type": "integer",
          "format": "int32"
        },
        "value": {
          "type": "string",
          "description": "The shortened string. For example, if the original string is 500 bytes long and the limit of the string is 128 bytes, then `value` contains the first 128 bytes of the 500-byte string. Truncation always happens on a UTF8 character boundary. If there are multi-byte characters in the string, then the length of the shortened string might be less than the size limit."
        }
      },
      "type": "object",
      "id": "TruncatableString",
      "description": "Represents a string that might be shortened to a specified length."
    },
    "QuotaProperties": {
      "description": "Represents the properties needed for quota operations.",
      "type": "object",
      "properties": {
        "quotaMode": {
          "enumDescriptions": [
            "Decreases available quota by the cost specified for the operation. If cost is higher than available quota, operation fails and returns error.",
            "Decreases available quota by the cost specified for the operation. If cost is higher than available quota, operation does not fail and available quota goes down to zero but it returns error.",
            "Does not change any available quota. Only checks if there is enough quota. No lock is placed on the checked tokens neither.",
            "Increases available quota by the operation cost specified for the operation."
          ],
          "enum": [
            "ACQUIRE",
            "ACQUIRE_BEST_EFFORT",
            "CHECK",
            "RELEASE"
          ],
          "type": "string",
          "description": "Quota mode for this operation."
        }
      },
      "id": "QuotaProperties"
    },
    "AuthorizationInfo": {
      "type": "object",
      "id": "AuthorizationInfo",
      "properties": {
        "permission": {
          "description": "The required IAM permission.",
          "type": "string"
        },
        "resourceAttributes": {
          "description": "Resource attributes used in IAM condition evaluation. This field contains resource attributes like resource type and resource name. To get the whole view of the attributes used in IAM condition evaluation, the user must also look into `AuditLog.request_metadata.request_attributes`.",
          "$ref": "Resource"
        },
        "granted": {
          "description": "Whether or not authorization for `resource` and `permission` was granted.",
          "type": "boolean"
        },
        "resource": {
          "type": "string",
          "description": "The resource being accessed, as a REST-style string. For example: bigquery.googleapis.com/projects/PROJECTID/datasets/DATASETID"
        }
      },
      "description": "Authorization information for the operation."
    },
    "RequestMetadata": {
      "properties": {
        "callerNetwork": {
          "description": "The network of the caller. Set only if the network host project is part of the same GCP organization (or project) as the accessed resource. See https://cloud.google.com/compute/docs/vpc/ for more information. This is a scheme-less URI full resource name. For example: \"//compute.googleapis.com/projects/PROJECT_ID/global/networks/NETWORK_ID\"",
          "type": "string"
        },
        "requestAttributes": {
          "$ref": "Request",
          "description": "Request attributes used in IAM condition evaluation. This field contains request attributes like request time and access levels associated with the request. To get the whole view of the attributes used in IAM condition evaluation, the user must also look into `AuditLog.authentication_info.resource_attributes`."
        },
        "callerIp": {
          "description": "The IP address of the caller. For caller from internet, this will be public IPv4 or IPv6 address. For caller from a Compute Engine VM with external IP address, this will be the VM's external IP address. For caller from a Compute Engine VM without external IP address, if the VM is in the same organization (or project) as the accessed resource, `caller_ip` will be the VM's internal IPv4 address, otherwise the `caller_ip` will be redacted to \"gce-internal-ip\". See https://cloud.google.com/compute/docs/vpc/ for more information.",
          "type": "string"
        },
        "callerSuppliedUserAgent": {
          "description": "The user agent of the caller. This information is not authenticated and should be treated accordingly. For example: + `google-api-python-client/1.4.0`: The request was made by the Google API client for Python. + `Cloud SDK Command Line Tool apitools-client/1.0 gcloud/0.9.62`: The request was made by the Google Cloud SDK CLI (gcloud). + `AppEngine-Google; (+http://code.google.com/appengine; appid: s~my-project`: The request was made from the `my-project` App Engine app. NOLINT",
          "type": "string"
        },
        "destinationAttributes": {
          "description": "The destination of a network activity, such as accepting a TCP connection. In a multi hop network activity, the destination represents the receiver of the last hop. Only two fields are used in this message, Peer.port and Peer.ip. These fields are optionally populated by those services utilizing the IAM condition feature.",
          "$ref": "Peer"
        }
      },
      "type": "object",
      "description": "Metadata about the request.",
      "id": "RequestMetadata"
    },
    "Auth": {
      "id": "Auth",
      "properties": {
        "principal": {
          "description": "The authenticated principal. Reflects the issuer (`iss`) and subject (`sub`) claims within a JWT. The issuer and subject should be `/` delimited, with `/` percent-encoded within the subject fragment. For Google accounts, the principal format is: \"https://accounts.google.com/{id}\"",
          "type": "string"
        },
        "audiences": {
          "items": {
            "type": "string"
          },
          "description": "The intended audience(s) for this authentication information. Reflects the audience (`aud`) claim within a JWT. The audience value(s) depends on the `issuer`, but typically include one or more of the following pieces of information: * The services intended to receive the credential. For example, [\"https://pubsub.googleapis.com/\", \"https://storage.googleapis.com/\"]. * A set of service-based scopes. For example, [\"https://www.googleapis.com/auth/cloud-platform\"]. * The client id of an app, such as the Firebase project id for JWTs from Firebase Auth. Consult the documentation for the credential issuer to determine the information provided.",
          "type": "array"
        },
        "presenter": {
          "type": "string",
          "description": "The authorized presenter of the credential. Reflects the optional Authorized Presenter (`azp`) claim within a JWT or the OAuth client id. For example, a Google Cloud Platform client id looks as follows: \"123456789012.apps.googleusercontent.com\"."
        },
        "claims": {
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object."
          },
          "description": "Structured claims presented with the credential. JWTs include `{key: value}` pairs for standard and private claims. The following is a subset of the standard required and optional claims that would typically be presented for a Google-based JWT: {'iss': 'accounts.google.com', 'sub': '113289723416554971153', 'aud': ['123456789012', 'pubsub.googleapis.com'], 'azp': '123456789012.apps.googleusercontent.com', 'email': 'jsmith@example.com', 'iat': 1353601026, 'exp': 1353604926} SAML assertions are similarly specified, but with an identity provider dependent structure."
        },
        "accessLevels": {
          "type": "array",
          "description": "A list of access level resource names that allow resources to be accessed by authenticated requester. It is part of Secure GCP processing for the incoming request. An access level string has the format: \"//{api_service_name}/accessPolicies/{policy_id}/accessLevels/{short_name}\" Example: \"//accesscontextmanager.googleapis.com/accessPolicies/MY_POLICY_ID/accessLevels/MY_LEVEL\"",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "description": "This message defines request authentication attributes. Terminology is based on the JSON Web Token (JWT) standard, but the terms also correlate to concepts in other standards."
    },
    "LinearBuckets": {
      "description": "Describing buckets with constant width.",
      "properties": {
        "width": {
          "type": "number",
          "description": "The i'th linear bucket covers the interval [offset + (i-1) * width, offset + i * width) where i ranges from 1 to num_finite_buckets, inclusive. Must be strictly positive.",
          "format": "double"
        },
        "offset": {
          "description": "The i'th linear bucket covers the interval [offset + (i-1) * width, offset + i * width) where i ranges from 1 to num_finite_buckets, inclusive.",
          "format": "double",
          "type": "number"
        },
        "numFiniteBuckets": {
          "type": "integer",
          "format": "int32",
          "description": "The number of finite buckets. With the underflow and overflow buckets, the total number of buckets is `num_finite_buckets` + 2. See comments on `bucket_options` for details."
        }
      },
      "id": "LinearBuckets",
      "type": "object"
    },
    "ThirdPartyPrincipal": {
      "properties": {
        "thirdPartyClaims": {
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object."
          },
          "type": "object",
          "description": "Metadata about third party identity."
        }
      },
      "id": "ThirdPartyPrincipal",
      "description": "Third party identity principal.",
      "type": "object"
    },
    "AllocateQuotaRequest": {
      "description": "Request message for the AllocateQuota method.",
      "properties": {
        "serviceConfigId": {
          "description": "Specifies which version of service configuration should be used to process the request. If unspecified or no matching version can be found, the latest one will be used.",
          "type": "string"
        },
        "allocateOperation": {
          "$ref": "QuotaOperation",
          "description": "Operation that describes the quota allocation."
        }
      },
      "id": "AllocateQuotaRequest",
      "type": "object"
    },
    "ExplicitBuckets": {
      "description": "Describing buckets with arbitrary user-provided width.",
      "properties": {
        "bounds": {
          "items": {
            "format": "double",
            "type": "number"
          },
          "type": "array",
          "description": "'bound' is a list of strictly increasing boundaries between buckets. Note that a list of length N-1 defines N buckets because of fenceposting. See comments on `bucket_options` for details. The i'th finite bucket covers the interval [bound[i-1], bound[i]) where i ranges from 1 to bound_size() - 1. Note that there are no finite buckets at all if 'bound' only contains a single element; in that special case the single bound defines the boundary between the underflow and overflow buckets. bucket number lower bound upper bound i == 0 (underflow) -inf bound[i] 0 \u003c i \u003c bound_size() bound[i-1] bound[i] i == bound_size() (overflow) bound[i-1] +inf"
        }
      },
      "type": "object",
      "id": "ExplicitBuckets"
    },
    "LogEntry": {
      "properties": {
        "insertId": {
          "type": "string",
          "description": "A unique ID for the log entry used for deduplication. If omitted, the implementation will generate one based on operation_id."
        },
        "name": {
          "description": "Required. The log to which this log entry belongs. Examples: `\"syslog\"`, `\"book_log\"`.",
          "type": "string"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of user-defined (key, value) data that provides additional information about the log entry.",
          "type": "object"
        },
        "protoPayload": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "type": "object",
          "description": "The log entry payload, represented as a protocol buffer that is expressed as a JSON object. The only accepted type currently is AuditLog."
        },
        "httpRequest": {
          "$ref": "HttpRequest",
          "description": "Optional. Information about the HTTP request associated with this log entry, if applicable."
        },
        "severity": {
          "enum": [
            "DEFAULT",
            "DEBUG",
            "INFO",
            "NOTICE",
            "WARNING",
            "ERROR",
            "CRITICAL",
            "ALERT",
            "EMERGENCY"
          ],
          "type": "string",
          "enumDescriptions": [
            "(0) The log entry has no assigned severity level.",
            "(100) Debug or trace information.",
            "(200) Routine information, such as ongoing status or performance.",
            "(300) Normal but significant events, such as start up, shut down, or a configuration change.",
            "(400) Warning events might cause problems.",
            "(500) Error events are likely to cause problems.",
            "(600) Critical events cause more severe problems or outages.",
            "(700) A person must take an action immediately.",
            "(800) One or more systems are unusable."
          ],
          "description": "The severity of the log entry. The default value is `LogSeverity.DEFAULT`."
        },
        "structPayload": {
          "type": "object",
          "description": "The log entry payload, represented as a structure that is expressed as a JSON object.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object."
          }
        },
        "operation": {
          "description": "Optional. Information about an operation associated with the log entry, if applicable.",
          "$ref": "LogEntryOperation"
        },
        "textPayload": {
          "description": "The log entry payload, represented as a Unicode string (UTF-8).",
          "type": "string"
        },
        "timestamp": {
          "type": "string",
          "description": "The time the event described by the log entry occurred. If omitted, defaults to operation start time.",
          "format": "google-datetime"
        },
        "trace": {
          "description": "Optional. Resource name of the trace associated with the log entry, if any. If this field contains a relative resource name, you can assume the name is relative to `//tracing.googleapis.com`. Example: `projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824`",
          "type": "string"
        },
        "sourceLocation": {
          "$ref": "LogEntrySourceLocation",
          "description": "Optional. Source code location information associated with the log entry, if any."
        }
      },
      "description": "An individual log entry.",
      "id": "LogEntry",
      "type": "object"
    },
    "ServiceAccountDelegationInfo": {
      "properties": {
        "principalSubject": {
          "description": "A string representing the principal_subject associated with the identity. See go/3pical for more info on how principal_subject is formatted.",
          "type": "string"
        },
        "firstPartyPrincipal": {
          "description": "First party (Google) identity as the real authority.",
          "$ref": "FirstPartyPrincipal"
        },
        "thirdPartyPrincipal": {
          "description": "Third party identity as the real authority.",
          "$ref": "ThirdPartyPrincipal"
        }
      },
      "id": "ServiceAccountDelegationInfo",
      "description": "Identity delegation history of an authenticated service account.",
      "type": "object"
    },
    "CheckError": {
      "description": "Defines the errors to be returned in google.api.servicecontrol.v1.CheckResponse.check_errors.",
      "type": "object",
      "id": "CheckError",
      "properties": {
        "code": {
          "enumDescriptions": [
            "This is never used in `CheckResponse`.",
            "The consumer's project id, network container, or resource container was not found. Same as google.rpc.Code.NOT_FOUND.",
            "The consumer doesn't have access to the specified resource. Same as google.rpc.Code.PERMISSION_DENIED.",
            "Quota check failed. Same as google.rpc.Code.RESOURCE_EXHAUSTED.",
            "Budget check failed.",
            "The consumer's request has been flagged as a DoS attack.",
            "The consumer's request should be rejected in order to protect the service from being overloaded.",
            "The consumer has been flagged as an abuser.",
            "The consumer hasn't activated the service.",
            "The consumer cannot access the service due to visibility configuration.",
            "The consumer cannot access the service because billing is disabled.",
            "The consumer's project has been marked as deleted (soft deletion).",
            "The consumer's project number or id does not represent a valid project.",
            "The input consumer info does not represent a valid consumer folder or organization.",
            "The IP address of the consumer is invalid for the specific consumer project.",
            "The referer address of the consumer request is invalid for the specific consumer project.",
            "The client application of the consumer request is invalid for the specific consumer project.",
            "The API targeted by this request is invalid for the specified consumer project.",
            "The consumer's API key is invalid.",
            "The consumer's API Key has expired.",
            "The consumer's API Key was not found in config record.",
            "The consumer's spatula header is invalid.",
            "The consumer's LOAS role is invalid.",
            "The consumer's LOAS role has no associated project.",
            "The consumer's LOAS project is not `ACTIVE` in LoquatV2.",
            "Request is not allowed as per security policies defined in Org Policy.",
            "The credential in the request can not be verified.",
            "Request is not allowed as per location policies defined in Org Policy.",
            "The backend server for looking up project id/number is unavailable.",
            "The backend server for checking service status is unavailable.",
            "The backend server for checking billing status is unavailable.",
            "The backend server for checking quota limits is unavailable.",
            "The Spanner for looking up LOAS project is unavailable.",
            "Cloud Resource Manager backend server is unavailable.",
            "NOTE: for customers in the scope of Beta/GA of https://cloud.google.com/vpc-service-controls, this error is no longer returned. If the security backend is unavailable, rpc UNAVAILABLE status will be returned instead. It should be ignored and should not be used to reject client requests.",
            "Backend server for evaluating location policy is unavailable."
          ],
          "type": "string",
          "enum": [
            "ERROR_CODE_UNSPECIFIED",
            "NOT_FOUND",
            "PERMISSION_DENIED",
            "RESOURCE_EXHAUSTED",
            "BUDGET_EXCEEDED",
            "DENIAL_OF_SERVICE_DETECTED",
            "LOAD_SHEDDING",
            "ABUSER_DETECTED",
            "SERVICE_NOT_ACTIVATED",
            "VISIBILITY_DENIED",
            "BILLING_DISABLED",
            "PROJECT_DELETED",
            "PROJECT_INVALID",
            "CONSUMER_INVALID",
            "IP_ADDRESS_BLOCKED",
            "REFERER_BLOCKED",
            "CLIENT_APP_BLOCKED",
            "API_TARGET_BLOCKED",
            "API_KEY_INVALID",
            "API_KEY_EXPIRED",
            "API_KEY_NOT_FOUND",
            "SPATULA_HEADER_INVALID",
            "LOAS_ROLE_INVALID",
            "NO_LOAS_PROJECT",
            "LOAS_PROJECT_DISABLED",
            "SECURITY_POLICY_VIOLATED",
            "INVALID_CREDENTIAL",
            "LOCATION_POLICY_VIOLATED",
            "NAMESPACE_LOOKUP_UNAVAILABLE",
            "SERVICE_STATUS_UNAVAILABLE",
            "BILLING_STATUS_UNAVAILABLE",
            "QUOTA_CHECK_UNAVAILABLE",
            "LOAS_PROJECT_LOOKUP_UNAVAILABLE",
            "CLOUD_RESOURCE_MANAGER_BACKEND_UNAVAILABLE",
            "SECURITY_POLICY_BACKEND_UNAVAILABLE",
            "LOCATION_POLICY_BACKEND_UNAVAILABLE"
          ],
          "description": "The error code."
        },
        "subject": {
          "description": "Subject to whom this error applies. See the specific code enum for more details on this field. For example: - \"project:\" - \"folder:\" - \"organization:\"",
          "type": "string"
        },
        "detail": {
          "description": "Free-form text providing details on the error cause of the error.",
          "type": "string"
        },
        "status": {
          "$ref": "Status",
          "description": "Contains public information about the check error. If available, `status.code` will be non zero and client can propagate it out as public error."
        }
      }
    },
    "ExponentialBuckets": {
      "description": "Describing buckets with exponentially growing width.",
      "type": "object",
      "id": "ExponentialBuckets",
      "properties": {
        "growthFactor": {
          "type": "number",
          "format": "double",
          "description": "The i'th exponential bucket covers the interval [scale * growth_factor^(i-1), scale * growth_factor^i) where i ranges from 1 to num_finite_buckets inclusive. Must be larger than 1.0."
        },
        "numFiniteBuckets": {
          "type": "integer",
          "format": "int32",
          "description": "The number of finite buckets. With the underflow and overflow buckets, the total number of buckets is `num_finite_buckets` + 2. See comments on `bucket_options` for details."
        },
        "scale": {
          "description": "The i'th exponential bucket covers the interval [scale * growth_factor^(i-1), scale * growth_factor^i) where i ranges from 1 to num_finite_buckets inclusive. Must be \u003e 0.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "ReportError": {
      "id": "ReportError",
      "description": "Represents the processing error of one Operation in the request.",
      "type": "object",
      "properties": {
        "status": {
          "$ref": "Status",
          "description": "Details of the error when processing the Operation."
        },
        "operationId": {
          "description": "The Operation.operation_id value from the request.",
          "type": "string"
        }
      }
    },
    "AttributeValue": {
      "type": "object",
      "properties": {
        "stringValue": {
          "description": "A string up to 256 bytes long.",
          "$ref": "TruncatableString"
        },
        "boolValue": {
          "type": "boolean",
          "description": "A Boolean value represented by `true` or `false`."
        },
        "intValue": {
          "description": "A 64-bit signed integer.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "AttributeValue",
      "description": "The allowed types for [VALUE] in a `[KEY]:[VALUE]` attribute."
    },
    "Peer": {
      "properties": {
        "labels": {
          "type": "object",
          "description": "The labels associated with the peer.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "principal": {
          "type": "string",
          "description": "The identity of this peer. Similar to `Request.auth.principal`, but relative to the peer instead of the request. For example, the idenity associated with a load balancer that forwared the request."
        },
        "port": {
          "description": "The network port of the peer.",
          "type": "string",
          "format": "int64"
        },
        "ip": {
          "type": "string",
          "description": "The IP address of the peer."
        },
        "regionCode": {
          "type": "string",
          "description": "The CLDR country/region code associated with the above IP address. If the IP address is private, the `region_code` should reflect the physical location where this peer is running."
        }
      },
      "type": "object",
      "id": "Peer",
      "description": "This message defines attributes for a node that handles a network request. The node can be either a service or an application that sends, forwards, or receives the request. Service peers should fill in `principal` and `labels` as appropriate."
    },
    "SpanContext": {
      "description": "The context of a span, attached to Exemplars in Distribution values during aggregation. It contains the name of a span with format: projects/[PROJECT_ID_OR_NUMBER]/traces/[TRACE_ID]/spans/[SPAN_ID]",
      "type": "object",
      "id": "SpanContext",
      "properties": {
        "spanName": {
          "type": "string",
          "description": "The resource name of the span. The format is: projects/[PROJECT_ID_OR_NUMBER]/traces/[TRACE_ID]/spans/[SPAN_ID] `[TRACE_ID]` is a unique identifier for a trace within a project; it is a 32-character hexadecimal encoding of a 16-byte array. `[SPAN_ID]` is a unique identifier for a span within a trace; it is a 16-character hexadecimal encoding of an 8-byte array."
        }
      }
    },
    "ResourceInfo": {
      "type": "object",
      "properties": {
        "resourceContainer": {
          "type": "string",
          "description": "The identifier of the parent of this resource instance. Must be in one of the following formats: - `projects/` - `folders/` - `organizations/`"
        },
        "resourceLocation": {
          "description": "The location of the resource. If not empty, the resource will be checked against location policy. The value must be a valid zone, region or multiregion. For example: \"europe-west4\" or \"northamerica-northeast1-a\"",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Name of the resource. This is used for auditing purposes."
        }
      },
      "id": "ResourceInfo",
      "description": "Describes a resource associated with this operation."
    },
    "AllocateQuotaResponse": {
      "description": "Response message for the AllocateQuota method.",
      "properties": {
        "allocateInfo": {
          "description": "WARNING: DO NOT use this field until this warning message is removed.",
          "$ref": "AllocateInfo"
        },
        "quotaMetrics": {
          "description": "Quota metrics to indicate the result of allocation. Depending on the request, one or more of the following metrics will be included: 1. Per quota group or per quota metric incremental usage will be specified using the following delta metric : \"serviceruntime.googleapis.com/api/consumer/quota_used_count\" 2. The quota limit reached condition will be specified using the following boolean metric : \"serviceruntime.googleapis.com/quota/exceeded\"",
          "items": {
            "$ref": "MetricValueSet"
          },
          "type": "array"
        },
        "allocateErrors": {
          "type": "array",
          "description": "Indicates the decision of the allocate.",
          "items": {
            "$ref": "QuotaError"
          }
        },
        "serviceConfigId": {
          "type": "string",
          "description": "ID of the actual config used to process the request."
        },
        "operationId": {
          "type": "string",
          "description": "The same operation_id value used in the AllocateQuotaRequest. Used for logging and diagnostics purposes."
        }
      },
      "id": "AllocateQuotaResponse",
      "type": "object"
    }
  },
  "ownerDomain": "google.com",
  "name": "servicecontrol",
  "mtlsRootUrl": "https://servicecontrol.mtls.googleapis.com/",
  "resources": {
    "services": {
      "methods": {
        "allocateQuota": {
          "path": "v1/services/{serviceName}:allocateQuota",
          "description": "Attempts to allocate quota for the specified consumer. It should be called before the operation is executed. This method requires the `servicemanagement.services.quota` permission on the specified service. For more information, see [Cloud IAM](https://cloud.google.com/iam). **NOTE:** The client **must** fail-open on server errors `INTERNAL`, `UNKNOWN`, `DEADLINE_EXCEEDED`, and `UNAVAILABLE`. To ensure system reliability, the server may inject these errors to prohibit any hard dependency on the quota functionality.",
          "parameterOrder": [
            "serviceName"
          ],
          "flatPath": "v1/services/{serviceName}:allocateQuota",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/servicecontrol"
          ],
          "response": {
            "$ref": "AllocateQuotaResponse"
          },
          "httpMethod": "POST",
          "parameters": {
            "serviceName": {
              "location": "path",
              "description": "Name of the service as specified in the service configuration. For example, `\"pubsub.googleapis.com\"`. See google.api.Service for the definition of a service name.",
              "type": "string",
              "required": true
            }
          },
          "id": "servicecontrol.services.allocateQuota",
          "request": {
            "$ref": "AllocateQuotaRequest"
          }
        },
        "check": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/servicecontrol"
          ],
          "flatPath": "v1/services/{serviceName}:check",
          "parameters": {
            "serviceName": {
              "location": "path",
              "description": "The service name as specified in its service configuration. For example, `\"pubsub.googleapis.com\"`. See [google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service) for the definition of a service name.",
              "required": true,
              "type": "string"
            }
          },
          "description": "Checks whether an operation on a service should be allowed to proceed based on the configuration of the service and related policies. It must be called before the operation is executed. If feasible, the client should cache the check results and reuse them for 60 seconds. In case of any server errors, the client should rely on the cached results for much longer time to avoid outage. WARNING: There is general 60s delay for the configuration and policy propagation, therefore callers MUST NOT depend on the `Check` method having the latest policy information. NOTE: the CheckRequest has the size limit of 64KB. This method requires the `servicemanagement.services.check` permission on the specified service. For more information, see [Cloud IAM](https://cloud.google.com/iam).",
          "response": {
            "$ref": "CheckResponse"
          },
          "path": "v1/services/{serviceName}:check",
          "parameterOrder": [
            "serviceName"
          ],
          "request": {
            "$ref": "CheckRequest"
          },
          "id": "servicecontrol.services.check",
          "httpMethod": "POST"
        },
        "report": {
          "httpMethod": "POST",
          "flatPath": "v1/services/{serviceName}:report",
          "path": "v1/services/{serviceName}:report",
          "description": "Reports operation results to Google Service Control, such as logs and metrics. It should be called after an operation is completed. If feasible, the client should aggregate reporting data for up to 5 seconds to reduce API traffic. Limiting aggregation to 5 seconds is to reduce data loss during client crashes. Clients should carefully choose the aggregation time window to avoid data loss risk more than 0.01% for business and compliance reasons. NOTE: the ReportRequest has the size limit (wire-format byte size) of 1MB. This method requires the `servicemanagement.services.report` permission on the specified service. For more information, see [Google Cloud IAM](https://cloud.google.com/iam).",
          "parameterOrder": [
            "serviceName"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/servicecontrol"
          ],
          "id": "servicecontrol.services.report",
          "response": {
            "$ref": "ReportResponse"
          },
          "parameters": {
            "serviceName": {
              "type": "string",
              "location": "path",
              "description": "The service name as specified in its service configuration. For example, `\"pubsub.googleapis.com\"`. See [google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service) for the definition of a service name.",
              "required": true
            }
          },
          "request": {
            "$ref": "ReportRequest"
          }
        }
      }
    }
  },
  "version": "v1"
}
