// Type definitions for Google Google Service Control API v1 1.0 // Project: https://cloud.google.com/service-control/ // Definitions by: Bolisov Alexey // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 // IMPORTANT // This file was generated by https://github.com/Bolisov/google-api-typings-generator. Please do not edit it manually. // In case of any problems please post issue to https://github.com/Bolisov/google-api-typings-generator // Generated from: https://servicecontrol.googleapis.com/$discovery/rest?version=v1 /// declare namespace gapi.client { /** Load Google Service Control API v1 */ function load(name: "servicecontrol", version: "v1"): PromiseLike; function load(name: "servicecontrol", version: "v1", callback: () => any): void; const services: servicecontrol.ServicesResource; namespace servicecontrol { interface AllocateInfo { /** * 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. */ unusedArguments?: string[]; } interface AllocateQuotaRequest { /** Operation that describes the quota allocation. */ allocateOperation?: QuotaOperation; /** * 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. */ serviceConfigId?: string; } interface AllocateQuotaResponse { /** Indicates the decision of the allocate. */ allocateErrors?: QuotaError[]; /** WARNING: DO NOT use this field until this warning message is removed. */ allocateInfo?: AllocateInfo; /** * The same operation_id value used in the AllocateQuotaRequest. Used for * logging and diagnostics purposes. */ operationId?: string; /** * 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" */ quotaMetrics?: MetricValueSet[]; /** ID of the actual config used to process the request. */ serviceConfigId?: string; } interface AuditLog { /** Authentication information. */ authenticationInfo?: AuthenticationInfo; /** * Authorization information. If there are multiple * resources or permissions involved, then there is * one AuthorizationInfo element for each {resource, permission} tuple. */ authorizationInfo?: AuthorizationInfo[]; /** * Other service-specific data about the request, response, and other * information associated with the current audited event. */ metadata?: Record; /** * The name of the service method or operation. * For API calls, this should be the name of the API method. * For example, * * "google.datastore.v1.Datastore.RunQuery" * "google.logging.v1.LoggingService.DeleteLog" */ methodName?: string; /** * The number of items returned from a List or Query API method, * if applicable. */ numResponseItems?: string; /** * 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. */ request?: Record; /** Metadata about the operation. */ requestMetadata?: RequestMetadata; /** * 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: * * "shelves/SHELF_ID/books" * "shelves/SHELF_ID/books/BOOK_ID" */ resourceName?: string; /** * 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. */ response?: Record; /** * Deprecated, use `metadata` field instead. * Other service-specific data about the request, response, and other * activities. */ serviceData?: Record; /** * The name of the API service performing the operation. For example, * `"datastore.googleapis.com"`. */ serviceName?: string; /** The status of the overall operation. */ status?: Status; } interface AuthenticationInfo { /** * The authority selector specified by the requestor, if any. * It is not guaranteed that the principal was allowed to use this authority. */ authoritySelector?: string; /** * The email address of the authenticated user (or service account on behalf * of third party principal) making the request. For privacy reasons, the * principal email address is redacted for all read-only operations that fail * with a "permission denied" error. */ principalEmail?: string; /** * 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. */ thirdPartyPrincipal?: Record; } interface AuthorizationInfo { /** * Whether or not authorization for `resource` and `permission` * was granted. */ granted?: boolean; /** The required IAM permission. */ permission?: string; /** * The resource being accessed, as a REST-style string. For example: * * bigquery.googleapis.com/projects/PROJECTID/datasets/DATASETID */ resource?: string; } interface CheckError { /** The error code. */ code?: string; /** Free-form text providing details on the error cause of the error. */ detail?: string; } interface CheckInfo { /** Consumer info of this check. */ consumerInfo?: ConsumerInfo; /** * 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. */ unusedArguments?: string[]; } interface CheckRequest { /** The operation to be checked. */ operation?: Operation; /** Requests the project settings to be returned as part of the check response. */ requestProjectSettings?: boolean; /** * 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. */ serviceConfigId?: string; /** * Indicates if service activation check should be skipped for this request. * Default behavior is to perform the check and apply relevant quota. */ skipActivationCheck?: boolean; } interface CheckResponse { /** * 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. */ checkErrors?: CheckError[]; /** Feedback data returned from the server during processing a Check request. */ checkInfo?: CheckInfo; /** * The same operation_id value used in the CheckRequest. * Used for logging and diagnostics purposes. */ operationId?: string; /** Quota information for the check request associated with this response. */ quotaInfo?: QuotaInfo; /** The actual config id used to process the request. */ serviceConfigId?: string; } interface ConsumerInfo { /** * The Google cloud project number, e.g. 1234567890. A value of 0 indicates * no project number is found. */ projectNumber?: string; } interface Distribution { /** * 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. */ bucketCounts?: string[]; /** The total number of samples in the distribution. Must be >= 0. */ count?: string; /** Buckets with arbitrary user-provided width. */ explicitBuckets?: ExplicitBuckets; /** Buckets with exponentially growing width. */ exponentialBuckets?: ExponentialBuckets; /** Buckets with constant width. */ linearBuckets?: LinearBuckets; /** The maximum of the population of values. Ignored if `count` is zero. */ maximum?: number; /** * The arithmetic mean of the samples in the distribution. If `count` is * zero then this field must be zero. */ mean?: number; /** The minimum of the population of values. Ignored if `count` is zero. */ minimum?: number; /** * 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. */ sumOfSquaredDeviation?: number; } interface EndReconciliationRequest { /** Operation that describes the quota reconciliation. */ reconciliationOperation?: QuotaOperation; /** * 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. */ serviceConfigId?: string; } interface EndReconciliationResponse { /** * The same operation_id value used in the EndReconciliationRequest. Used for * logging and diagnostics purposes. */ operationId?: string; /** * Metric values as tracked by One Platform before the adjustment was made. * The following metrics will be included: * * 1. Per quota metric total usage will be specified using the following gauge * metric: * "serviceruntime.googleapis.com/allocation/consumer/quota_used_count" * * 2. Value for each quota limit associated with the metrics will be specified * using the following gauge metric: * "serviceruntime.googleapis.com/quota/limit" * * 3. Delta value of the usage after the reconciliation for limits associated * with the metrics will be specified using the following metric: * "serviceruntime.googleapis.com/allocation/reconciliation_delta" * The delta value is defined as: * new_usage_from_client - existing_value_in_spanner. * This metric is not defined in serviceruntime.yaml or in Cloud Monarch. * This metric is meant for callers' use only. Since this metric is not * defined in the monitoring backend, reporting on this metric will result in * an error. */ quotaMetrics?: MetricValueSet[]; /** Indicates the decision of the reconciliation end. */ reconciliationErrors?: QuotaError[]; /** ID of the actual config used to process the request. */ serviceConfigId?: string; } interface ExplicitBuckets { /** * '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 < i < bound_size() bound[i-1] bound[i] * i == bound_size() (overflow) bound[i-1] +inf */ bounds?: number[]; } interface ExponentialBuckets { /** * 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. */ growthFactor?: number; /** * 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. */ numFiniteBuckets?: number; /** * 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 > 0. */ scale?: number; } interface LinearBuckets { /** * 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. */ numFiniteBuckets?: number; /** * 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. */ offset?: number; /** * 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. */ width?: number; } interface LogEntry { /** * A unique ID for the log entry used for deduplication. If omitted, * the implementation will generate one based on operation_id. */ insertId?: string; /** * A set of user-defined (key, value) data that provides additional * information about the log entry. */ labels?: Record; /** * Required. The log to which this log entry belongs. Examples: `"syslog"`, * `"book_log"`. */ name?: string; /** * The log entry payload, represented as a protocol buffer that is * expressed as a JSON object. The only accepted type currently is * AuditLog. */ protoPayload?: Record; /** * The severity of the log entry. The default value is * `LogSeverity.DEFAULT`. */ severity?: string; /** * The log entry payload, represented as a structure that * is expressed as a JSON object. */ structPayload?: Record; /** The log entry payload, represented as a Unicode string (UTF-8). */ textPayload?: string; /** * The time the event described by the log entry occurred. If * omitted, defaults to operation start time. */ timestamp?: string; } interface MetricValue { /** A boolean value. */ boolValue?: boolean; /** A distribution value. */ distributionValue?: Distribution; /** A double precision floating point value. */ doubleValue?: number; /** * The end of the time period over which this metric value's measurement * applies. */ endTime?: string; /** A signed 64-bit integer value. */ int64Value?: string; /** * The labels describing the metric value. * See comments on google.api.servicecontrol.v1.Operation.labels for * the overriding relationship. */ labels?: Record; /** A money value. */ moneyValue?: Money; /** * 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. */ startTime?: string; /** A text string value. */ stringValue?: string; } interface MetricValueSet { /** The metric name defined in the service configuration. */ metricName?: string; /** The values in this metric. */ metricValues?: MetricValue[]; } interface Money { /** The 3-letter currency code defined in ISO 4217. */ currencyCode?: string; /** * 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. */ nanos?: number; /** * The whole units of the amount. * For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. */ units?: string; } interface Operation { /** * 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_number:, * api_key:. */ consumerId?: string; /** * End time of the operation. * Required when the operation is used in ServiceController.Report, * but optional when the operation is used in ServiceController.Check. */ endTime?: string; /** DO NOT USE. This is an experimental field. */ importance?: string; /** * Labels describing the operation. Only the following labels are allowed: * * - Labels describing monitored resources as defined in * the service configuration. * - Default labels of metric values. When specified, labels defined in the * metric value override these default. * - The following labels defined by Google Cloud Platform: * - `cloud.googleapis.com/location` describing the location where the * operation happened, * - `servicecontrol.googleapis.com/user_agent` describing the user agent * of the API request, * - `servicecontrol.googleapis.com/service_agent` describing the service * used to handle the API request (e.g. ESP), * - `servicecontrol.googleapis.com/platform` describing the platform * where the API is served (e.g. GAE, GCE, GKE). */ labels?: Record; /** Represents information to be logged. */ logEntries?: LogEntry[]; /** * 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. */ metricValueSets?: MetricValueSet[]; /** * 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. */ operationId?: string; /** Fully qualified name of the operation. Reserved for future use. */ operationName?: string; /** * 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. */ quotaProperties?: QuotaProperties; /** * DO NOT USE. This field is deprecated, use "resources" field instead. * The resource name of the parent of a resource in the resource hierarchy. * * This can be in one of the following formats: * - “projects/” * - “folders/” * - “organizations/” */ resourceContainer?: string; /** The resources that are involved in the operation. */ resources?: ResourceInfo[]; /** Required. Start time of the operation. */ startTime?: string; /** * User defined labels for the resource that this operation is associated * with. Only a combination of 1000 user labels per consumer project are * allowed. */ userLabels?: Record; } interface QuotaError { /** Error code. */ code?: string; /** Free-form text that provides details on the cause of the error. */ description?: string; /** * Subject to whom this error applies. See the specific enum for more details * on this field. For example, "clientip:" or * "project:". */ subject?: string; } interface QuotaInfo { /** * 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. */ limitExceeded?: string[]; /** * 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). */ quotaConsumed?: Record; /** * 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" */ quotaMetrics?: MetricValueSet[]; } interface QuotaOperation { /** * 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:. */ consumerId?: string; /** Labels describing the operation. */ labels?: Record; /** * 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 is not * required if the quota operation is performed on non-API resources. * * Example of an RPC method name: * google.example.library.v1.LibraryService.CreateShelf */ methodName?: string; /** * 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. * * 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. */ operationId?: string; /** * 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. */ quotaMetrics?: MetricValueSet[]; /** Quota mode for this operation. */ quotaMode?: string; } interface QuotaProperties { /** Quota mode for this operation. */ quotaMode?: string; } interface ReleaseQuotaRequest { /** Operation that describes the quota release. */ releaseOperation?: QuotaOperation; /** * 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. */ serviceConfigId?: string; } interface ReleaseQuotaResponse { /** * The same operation_id value used in the ReleaseQuotaRequest. Used for * logging and diagnostics purposes. */ operationId?: string; /** * Quota metrics to indicate the result of release. Depending on the * request, one or more of the following metrics will be included: * * 1. For rate quota, per quota group or per quota metric released amount * will be specified using the following delta metric: * "serviceruntime.googleapis.com/api/consumer/quota_refund_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 allocation quota, value for each quota limit associated with * the metrics will be specified using the following gauge metric: * "serviceruntime.googleapis.com/quota/limit" */ quotaMetrics?: MetricValueSet[]; /** Indicates the decision of the release. */ releaseErrors?: QuotaError[]; /** ID of the actual config used to process the request. */ serviceConfigId?: string; } interface ReportError { /** The Operation.operation_id value from the request. */ operationId?: string; /** Details of the error when processing the Operation. */ status?: Status; } interface ReportInfo { /** The Operation.operation_id value from the request. */ operationId?: string; /** Quota usage info when processing the `Operation`. */ quotaInfo?: QuotaInfo; } interface ReportRequest { /** * 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. * * If multiple operations are in a single request, the total request size * should be no larger than 1MB. See ReportResponse.report_errors for * partial failure behavior. */ operations?: Operation[]; /** * 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. */ serviceConfigId?: string; } interface ReportResponse { /** * 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. */ reportErrors?: ReportError[]; /** * 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. */ reportInfos?: ReportInfo[]; /** The actual config id used to process the request. */ serviceConfigId?: string; } interface RequestMetadata { /** * 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. */ callerIp?: string; /** * 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" */ callerNetwork?: string; /** * 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 */ callerSuppliedUserAgent?: string; } interface ResourceInfo { /** * The identifier of the parent of this resource instance. * Must be in one of the following formats: * - “projects/” * - “folders/” * - “organizations/” */ resourceContainer?: string; /** Name of the resource. This is used for auditing purposes. */ resourceName?: string; } interface StartReconciliationRequest { /** Operation that describes the quota reconciliation. */ reconciliationOperation?: QuotaOperation; /** * 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. */ serviceConfigId?: string; } interface StartReconciliationResponse { /** * The same operation_id value used in the StartReconciliationRequest. Used * for logging and diagnostics purposes. */ operationId?: string; /** * Metric values as tracked by One Platform before the start of * reconciliation. The following metrics will be included: * * 1. Per quota metric total usage will be specified using the following gauge * metric: * "serviceruntime.googleapis.com/allocation/consumer/quota_used_count" * * 2. Value for each quota limit associated with the metrics will be specified * using the following gauge metric: * "serviceruntime.googleapis.com/quota/limit" */ quotaMetrics?: MetricValueSet[]; /** Indicates the decision of the reconciliation start. */ reconciliationErrors?: QuotaError[]; /** ID of the actual config used to process the request. */ serviceConfigId?: string; } interface Status { /** The status code, which should be an enum value of google.rpc.Code. */ code?: number; /** * A list of messages that carry the error details. There is a common set of * message types for APIs to use. */ details?: Array>; /** * 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. */ message?: string; } interface ServicesResource { /** * 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. */ allocateQuota(request: { /** V1 error format. */ "$.xgafv"?: string; /** OAuth access token. */ access_token?: string; /** Data format for response. */ alt?: string; /** OAuth bearer token. */ bearer_token?: string; /** JSONP */ callback?: string; /** Selector specifying which fields to include in a partial response. */ fields?: string; /** 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. */ key?: string; /** OAuth 2.0 token for the current user. */ oauth_token?: string; /** Pretty-print response. */ pp?: boolean; /** Returns response with indentations and line breaks. */ prettyPrint?: boolean; /** 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. */ quotaUser?: string; /** * 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. */ serviceName: string; /** Legacy upload protocol for media (e.g. "media", "multipart"). */ uploadType?: string; /** Upload protocol for media (e.g. "raw", "multipart"). */ upload_protocol?: string; }): Request; /** * Checks an operation with Google Service Control to decide whether * the given operation should proceed. It should 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 server errors, the client can rely on the cached * results for longer time. * * 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 * [Google Cloud IAM](https://cloud.google.com/iam). */ check(request: { /** V1 error format. */ "$.xgafv"?: string; /** OAuth access token. */ access_token?: string; /** Data format for response. */ alt?: string; /** OAuth bearer token. */ bearer_token?: string; /** JSONP */ callback?: string; /** Selector specifying which fields to include in a partial response. */ fields?: string; /** 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. */ key?: string; /** OAuth 2.0 token for the current user. */ oauth_token?: string; /** Pretty-print response. */ pp?: boolean; /** Returns response with indentations and line breaks. */ prettyPrint?: boolean; /** 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. */ quotaUser?: string; /** * 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. */ serviceName: string; /** Legacy upload protocol for media (e.g. "media", "multipart"). */ uploadType?: string; /** Upload protocol for media (e.g. "raw", "multipart"). */ upload_protocol?: string; }): Request; /** * Signals the quota controller that service ends the ongoing usage * reconciliation. * * This method requires the `servicemanagement.services.quota` * permission on the specified service. For more information, see * [Google Cloud IAM](https://cloud.google.com/iam). */ endReconciliation(request: { /** V1 error format. */ "$.xgafv"?: string; /** OAuth access token. */ access_token?: string; /** Data format for response. */ alt?: string; /** OAuth bearer token. */ bearer_token?: string; /** JSONP */ callback?: string; /** Selector specifying which fields to include in a partial response. */ fields?: string; /** 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. */ key?: string; /** OAuth 2.0 token for the current user. */ oauth_token?: string; /** Pretty-print response. */ pp?: boolean; /** Returns response with indentations and line breaks. */ prettyPrint?: boolean; /** 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. */ quotaUser?: string; /** * 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. */ serviceName: string; /** Legacy upload protocol for media (e.g. "media", "multipart"). */ uploadType?: string; /** Upload protocol for media (e.g. "raw", "multipart"). */ upload_protocol?: string; }): Request; /** * Releases previously allocated quota done through AllocateQuota method. * * 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. */ releaseQuota(request: { /** V1 error format. */ "$.xgafv"?: string; /** OAuth access token. */ access_token?: string; /** Data format for response. */ alt?: string; /** OAuth bearer token. */ bearer_token?: string; /** JSONP */ callback?: string; /** Selector specifying which fields to include in a partial response. */ fields?: string; /** 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. */ key?: string; /** OAuth 2.0 token for the current user. */ oauth_token?: string; /** Pretty-print response. */ pp?: boolean; /** Returns response with indentations and line breaks. */ prettyPrint?: boolean; /** 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. */ quotaUser?: string; /** * 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. */ serviceName: string; /** Legacy upload protocol for media (e.g. "media", "multipart"). */ uploadType?: string; /** Upload protocol for media (e.g. "raw", "multipart"). */ upload_protocol?: string; }): Request; /** * 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 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). */ report(request: { /** V1 error format. */ "$.xgafv"?: string; /** OAuth access token. */ access_token?: string; /** Data format for response. */ alt?: string; /** OAuth bearer token. */ bearer_token?: string; /** JSONP */ callback?: string; /** Selector specifying which fields to include in a partial response. */ fields?: string; /** 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. */ key?: string; /** OAuth 2.0 token for the current user. */ oauth_token?: string; /** Pretty-print response. */ pp?: boolean; /** Returns response with indentations and line breaks. */ prettyPrint?: boolean; /** 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. */ quotaUser?: string; /** * 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. */ serviceName: string; /** Legacy upload protocol for media (e.g. "media", "multipart"). */ uploadType?: string; /** Upload protocol for media (e.g. "raw", "multipart"). */ upload_protocol?: string; }): Request; /** * Unlike rate quota, allocation quota does not get refilled periodically. * So, it is possible that the quota usage as seen by the service differs from * what the One Platform considers the usage is. This is expected to happen * only rarely, but over time this can accumulate. Services can invoke * StartReconciliation and EndReconciliation to correct this usage drift, as * described below: * 1. Service sends StartReconciliation with a timestamp in future for each * metric that needs to be reconciled. The timestamp being in future allows * to account for in-flight AllocateQuota and ReleaseQuota requests for the * same metric. * 2. One Platform records this timestamp and starts tracking subsequent * AllocateQuota and ReleaseQuota requests until EndReconciliation is * called. * 3. At or after the time specified in the StartReconciliation, service * sends EndReconciliation with the usage that needs to be reconciled to. * 4. One Platform adjusts its own record of usage for that metric to the * value specified in EndReconciliation by taking in to account any * allocation or release between StartReconciliation and EndReconciliation. * * Signals the quota controller that the service wants to perform a usage * reconciliation as specified in the request. * * This method requires the `servicemanagement.services.quota` * permission on the specified service. For more information, see * [Google Cloud IAM](https://cloud.google.com/iam). */ startReconciliation(request: { /** V1 error format. */ "$.xgafv"?: string; /** OAuth access token. */ access_token?: string; /** Data format for response. */ alt?: string; /** OAuth bearer token. */ bearer_token?: string; /** JSONP */ callback?: string; /** Selector specifying which fields to include in a partial response. */ fields?: string; /** 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. */ key?: string; /** OAuth 2.0 token for the current user. */ oauth_token?: string; /** Pretty-print response. */ pp?: boolean; /** Returns response with indentations and line breaks. */ prettyPrint?: boolean; /** 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. */ quotaUser?: string; /** * 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. */ serviceName: string; /** Legacy upload protocol for media (e.g. "media", "multipart"). */ uploadType?: string; /** Upload protocol for media (e.g. "raw", "multipart"). */ upload_protocol?: string; }): Request; } } }