// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // @generated by protoc-gen-es v1.10.0 // @generated from file google/rpc/error_details.proto (package google.rpc, syntax proto3) /* eslint-disable */ // @ts-nocheck import type { BinaryReadOptions, Duration, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; import { Message, proto3 } from "@bufbuild/protobuf"; /** * Describes the cause of the error with structured details. * * Example of an error when contacting the "pubsub.googleapis.com" API when it * is not enabled: * * { "reason": "API_DISABLED" * "domain": "googleapis.com" * "metadata": { * "resource": "projects/123", * "service": "pubsub.googleapis.com" * } * } * * This response indicates that the pubsub.googleapis.com API is not enabled. * * Example of an error that is returned when attempting to create a Spanner * instance in a region that is out of stock: * * { "reason": "STOCKOUT" * "domain": "spanner.googleapis.com", * "metadata": { * "availableRegions": "us-central1,us-east2" * } * } * * @generated from message google.rpc.ErrorInfo */ export declare class ErrorInfo extends Message { /** * The reason of the error. This is a constant value that identifies the * proximate cause of the error. Error reasons are unique within a particular * domain of errors. This should be at most 63 characters and match a * regular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`, which represents * UPPER_SNAKE_CASE. * * @generated from field: string reason = 1; */ reason: string; /** * The logical grouping to which the "reason" belongs. The error domain * is typically the registered service name of the tool or product that * generates the error. Example: "pubsub.googleapis.com". If the error is * generated by some common infrastructure, the error domain must be a * globally unique value that identifies the infrastructure. For Google API * infrastructure, the error domain is "googleapis.com". * * @generated from field: string domain = 2; */ domain: string; /** * Additional structured details about this error. * * Keys must match a regular expression of `[a-z][a-zA-Z0-9-_]+` but should * ideally be lowerCamelCase. Also, they must be limited to 64 characters in * length. When identifying the current value of an exceeded limit, the units * should be contained in the key, not the value. For example, rather than * `{"instanceLimit": "100/request"}`, should be returned as, * `{"instanceLimitPerRequest": "100"}`, if the client exceeds the number of * instances that can be created in a single (batch) request. * * @generated from field: map metadata = 3; */ metadata: { [key: string]: string }; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "google.rpc.ErrorInfo"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): ErrorInfo; static fromJson(jsonValue: JsonValue, options?: Partial): ErrorInfo; static fromJsonString(jsonString: string, options?: Partial): ErrorInfo; static equals(a: ErrorInfo | PlainMessage | undefined, b: ErrorInfo | PlainMessage | undefined): boolean; } /** * Describes when the clients can retry a failed request. Clients could ignore * the recommendation here or retry when this information is missing from error * responses. * * It's always recommended that clients should use exponential backoff when * retrying. * * Clients should wait until `retry_delay` amount of time has passed since * receiving the error response before retrying. If retrying requests also * fail, clients should use an exponential backoff scheme to gradually increase * the delay between retries based on `retry_delay`, until either a maximum * number of retries have been reached or a maximum retry delay cap has been * reached. * * @generated from message google.rpc.RetryInfo */ export declare class RetryInfo extends Message { /** * Clients should wait at least this long between retrying the same request. * * @generated from field: google.protobuf.Duration retry_delay = 1; */ retryDelay?: Duration; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "google.rpc.RetryInfo"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): RetryInfo; static fromJson(jsonValue: JsonValue, options?: Partial): RetryInfo; static fromJsonString(jsonString: string, options?: Partial): RetryInfo; static equals(a: RetryInfo | PlainMessage | undefined, b: RetryInfo | PlainMessage | undefined): boolean; } /** * Describes additional debugging info. * * @generated from message google.rpc.DebugInfo */ export declare class DebugInfo extends Message { /** * The stack trace entries indicating where the error occurred. * * @generated from field: repeated string stack_entries = 1; */ stackEntries: string[]; /** * Additional debugging information provided by the server. * * @generated from field: string detail = 2; */ detail: string; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "google.rpc.DebugInfo"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): DebugInfo; static fromJson(jsonValue: JsonValue, options?: Partial): DebugInfo; static fromJsonString(jsonString: string, options?: Partial): DebugInfo; static equals(a: DebugInfo | PlainMessage | undefined, b: DebugInfo | PlainMessage | undefined): boolean; } /** * Describes how a quota check failed. * * For example if a daily limit was exceeded for the calling project, * a service could respond with a QuotaFailure detail containing the project * id and the description of the quota limit that was exceeded. If the * calling project hasn't enabled the service in the developer console, then * a service could respond with the project id and set `service_disabled` * to true. * * Also see RetryInfo and Help types for other details about handling a * quota failure. * * @generated from message google.rpc.QuotaFailure */ export declare class QuotaFailure extends Message { /** * Describes all quota violations. * * @generated from field: repeated google.rpc.QuotaFailure.Violation violations = 1; */ violations: QuotaFailure_Violation[]; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "google.rpc.QuotaFailure"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): QuotaFailure; static fromJson(jsonValue: JsonValue, options?: Partial): QuotaFailure; static fromJsonString(jsonString: string, options?: Partial): QuotaFailure; static equals(a: QuotaFailure | PlainMessage | undefined, b: QuotaFailure | PlainMessage | undefined): boolean; } /** * A message type used to describe a single quota violation. For example, a * daily quota or a custom quota that was exceeded. * * @generated from message google.rpc.QuotaFailure.Violation */ export declare class QuotaFailure_Violation extends Message { /** * The subject on which the quota check failed. * For example, "clientip:" or "project:". * * @generated from field: string subject = 1; */ subject: string; /** * A description of how the quota check failed. Clients can use this * description to find more about the quota configuration in the service's * public documentation, or find the relevant quota limit to adjust through * developer console. * * For example: "Service disabled" or "Daily Limit for read operations * exceeded". * * @generated from field: string description = 2; */ description: string; /** * The API Service from which the `QuotaFailure.Violation` orginates. In * some cases, Quota issues originate from an API Service other than the one * that was called. In other words, a dependency of the called API Service * could be the cause of the `QuotaFailure`, and this field would have the * dependency API service name. * * For example, if the called API is Kubernetes Engine API * (container.googleapis.com), and a quota violation occurs in the * Kubernetes Engine API itself, this field would be * "container.googleapis.com". On the other hand, if the quota violation * occurs when the Kubernetes Engine API creates VMs in the Compute Engine * API (compute.googleapis.com), this field would be * "compute.googleapis.com". * * @generated from field: string api_service = 3; */ apiService: string; /** * The metric of the violated quota. A quota metric is a named counter to * measure usage, such as API requests or CPUs. When an activity occurs in a * service, such as Virtual Machine allocation, one or more quota metrics * may be affected. * * For example, "compute.googleapis.com/cpus_per_vm_family", * "storage.googleapis.com/internet_egress_bandwidth". * * @generated from field: string quota_metric = 4; */ quotaMetric: string; /** * The id of the violated quota. Also know as "limit name", this is the * unique identifier of a quota in the context of an API service. * * For example, "CPUS-PER-VM-FAMILY-per-project-region". * * @generated from field: string quota_id = 5; */ quotaId: string; /** * The dimensions of the violated quota. Every non-global quota is enforced * on a set of dimensions. While quota metric defines what to count, the * dimensions specify for what aspects the counter should be increased. * * For example, the quota "CPUs per region per VM family" enforces a limit * on the metric "compute.googleapis.com/cpus_per_vm_family" on dimensions * "region" and "vm_family". And if the violation occurred in region * "us-central1" and for VM family "n1", the quota_dimensions would be, * * { * "region": "us-central1", * "vm_family": "n1", * } * * When a quota is enforced globally, the quota_dimensions would always be * empty. * * @generated from field: map quota_dimensions = 6; */ quotaDimensions: { [key: string]: string }; /** * The enforced quota value at the time of the `QuotaFailure`. * * For example, if the enforced quota value at the time of the * `QuotaFailure` on the number of CPUs is "10", then the value of this * field would reflect this quantity. * * @generated from field: int64 quota_value = 7; */ quotaValue: bigint; /** * The new quota value being rolled out at the time of the violation. At the * completion of the rollout, this value will be enforced in place of * quota_value. If no rollout is in progress at the time of the violation, * this field is not set. * * For example, if at the time of the violation a rollout is in progress * changing the number of CPUs quota from 10 to 20, 20 would be the value of * this field. * * @generated from field: optional int64 future_quota_value = 8; */ futureQuotaValue?: bigint; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "google.rpc.QuotaFailure.Violation"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): QuotaFailure_Violation; static fromJson(jsonValue: JsonValue, options?: Partial): QuotaFailure_Violation; static fromJsonString(jsonString: string, options?: Partial): QuotaFailure_Violation; static equals(a: QuotaFailure_Violation | PlainMessage | undefined, b: QuotaFailure_Violation | PlainMessage | undefined): boolean; } /** * Describes what preconditions have failed. * * For example, if an RPC failed because it required the Terms of Service to be * acknowledged, it could list the terms of service violation in the * PreconditionFailure message. * * @generated from message google.rpc.PreconditionFailure */ export declare class PreconditionFailure extends Message { /** * Describes all precondition violations. * * @generated from field: repeated google.rpc.PreconditionFailure.Violation violations = 1; */ violations: PreconditionFailure_Violation[]; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "google.rpc.PreconditionFailure"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): PreconditionFailure; static fromJson(jsonValue: JsonValue, options?: Partial): PreconditionFailure; static fromJsonString(jsonString: string, options?: Partial): PreconditionFailure; static equals(a: PreconditionFailure | PlainMessage | undefined, b: PreconditionFailure | PlainMessage | undefined): boolean; } /** * A message type used to describe a single precondition failure. * * @generated from message google.rpc.PreconditionFailure.Violation */ export declare class PreconditionFailure_Violation extends Message { /** * The type of PreconditionFailure. We recommend using a service-specific * enum type to define the supported precondition violation subjects. For * example, "TOS" for "Terms of Service violation". * * @generated from field: string type = 1; */ type: string; /** * The subject, relative to the type, that failed. * For example, "google.com/cloud" relative to the "TOS" type would indicate * which terms of service is being referenced. * * @generated from field: string subject = 2; */ subject: string; /** * A description of how the precondition failed. Developers can use this * description to understand how to fix the failure. * * For example: "Terms of service not accepted". * * @generated from field: string description = 3; */ description: string; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "google.rpc.PreconditionFailure.Violation"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): PreconditionFailure_Violation; static fromJson(jsonValue: JsonValue, options?: Partial): PreconditionFailure_Violation; static fromJsonString(jsonString: string, options?: Partial): PreconditionFailure_Violation; static equals(a: PreconditionFailure_Violation | PlainMessage | undefined, b: PreconditionFailure_Violation | PlainMessage | undefined): boolean; } /** * Describes violations in a client request. This error type focuses on the * syntactic aspects of the request. * * @generated from message google.rpc.BadRequest */ export declare class BadRequest extends Message { /** * Describes all violations in a client request. * * @generated from field: repeated google.rpc.BadRequest.FieldViolation field_violations = 1; */ fieldViolations: BadRequest_FieldViolation[]; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "google.rpc.BadRequest"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): BadRequest; static fromJson(jsonValue: JsonValue, options?: Partial): BadRequest; static fromJsonString(jsonString: string, options?: Partial): BadRequest; static equals(a: BadRequest | PlainMessage | undefined, b: BadRequest | PlainMessage | undefined): boolean; } /** * A message type used to describe a single bad request field. * * @generated from message google.rpc.BadRequest.FieldViolation */ export declare class BadRequest_FieldViolation extends Message { /** * A path that leads to a field in the request body. The value will be a * sequence of dot-separated identifiers that identify a protocol buffer * field. * * Consider the following: * * message CreateContactRequest { * message EmailAddress { * enum Type { * TYPE_UNSPECIFIED = 0; * HOME = 1; * WORK = 2; * } * * optional string email = 1; * repeated EmailType type = 2; * } * * string full_name = 1; * repeated EmailAddress email_addresses = 2; * } * * In this example, in proto `field` could take one of the following values: * * * `full_name` for a violation in the `full_name` value * * `email_addresses[0].email` for a violation in the `email` field of the * first `email_addresses` message * * `email_addresses[2].type[1]` for a violation in the second `type` * value in the third `email_addresses` message. * * In JSON, the same values are represented as: * * * `fullName` for a violation in the `fullName` value * * `emailAddresses[0].email` for a violation in the `email` field of the * first `emailAddresses` message * * `emailAddresses[2].type[1]` for a violation in the second `type` * value in the third `emailAddresses` message. * * @generated from field: string field = 1; */ field: string; /** * A description of why the request element is bad. * * @generated from field: string description = 2; */ description: string; /** * The reason of the field-level error. This is a constant value that * identifies the proximate cause of the field-level error. It should * uniquely identify the type of the FieldViolation within the scope of the * google.rpc.ErrorInfo.domain. This should be at most 63 * characters and match a regular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`, * which represents UPPER_SNAKE_CASE. * * @generated from field: string reason = 3; */ reason: string; /** * Provides a localized error message for field-level errors that is safe to * return to the API consumer. * * @generated from field: google.rpc.LocalizedMessage localized_message = 4; */ localizedMessage?: LocalizedMessage; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "google.rpc.BadRequest.FieldViolation"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): BadRequest_FieldViolation; static fromJson(jsonValue: JsonValue, options?: Partial): BadRequest_FieldViolation; static fromJsonString(jsonString: string, options?: Partial): BadRequest_FieldViolation; static equals(a: BadRequest_FieldViolation | PlainMessage | undefined, b: BadRequest_FieldViolation | PlainMessage | undefined): boolean; } /** * Contains metadata about the request that clients can attach when filing a bug * or providing other forms of feedback. * * @generated from message google.rpc.RequestInfo */ export declare class RequestInfo extends Message { /** * An opaque string that should only be interpreted by the service generating * it. For example, it can be used to identify requests in the service's logs. * * @generated from field: string request_id = 1; */ requestId: string; /** * Any data that was used to serve this request. For example, an encrypted * stack trace that can be sent back to the service provider for debugging. * * @generated from field: string serving_data = 2; */ servingData: string; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "google.rpc.RequestInfo"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): RequestInfo; static fromJson(jsonValue: JsonValue, options?: Partial): RequestInfo; static fromJsonString(jsonString: string, options?: Partial): RequestInfo; static equals(a: RequestInfo | PlainMessage | undefined, b: RequestInfo | PlainMessage | undefined): boolean; } /** * Describes the resource that is being accessed. * * @generated from message google.rpc.ResourceInfo */ export declare class ResourceInfo extends Message { /** * A name for the type of resource being accessed, e.g. "sql table", * "cloud storage bucket", "file", "Google calendar"; or the type URL * of the resource: e.g. "type.googleapis.com/google.pubsub.v1.Topic". * * @generated from field: string resource_type = 1; */ resourceType: string; /** * The name of the resource being accessed. For example, a shared calendar * name: "example.com_4fghdhgsrgh@group.calendar.google.com", if the current * error is * [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED]. * * @generated from field: string resource_name = 2; */ resourceName: string; /** * The owner of the resource (optional). * For example, "user:" or "project:". * * @generated from field: string owner = 3; */ owner: string; /** * Describes what error is encountered when accessing this resource. * For example, updating a cloud project may require the `writer` permission * on the developer console project. * * @generated from field: string description = 4; */ description: string; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "google.rpc.ResourceInfo"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): ResourceInfo; static fromJson(jsonValue: JsonValue, options?: Partial): ResourceInfo; static fromJsonString(jsonString: string, options?: Partial): ResourceInfo; static equals(a: ResourceInfo | PlainMessage | undefined, b: ResourceInfo | PlainMessage | undefined): boolean; } /** * Provides links to documentation or for performing an out of band action. * * For example, if a quota check failed with an error indicating the calling * project hasn't enabled the accessed service, this can contain a URL pointing * directly to the right place in the developer console to flip the bit. * * @generated from message google.rpc.Help */ export declare class Help extends Message { /** * URL(s) pointing to additional information on handling the current error. * * @generated from field: repeated google.rpc.Help.Link links = 1; */ links: Help_Link[]; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "google.rpc.Help"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): Help; static fromJson(jsonValue: JsonValue, options?: Partial): Help; static fromJsonString(jsonString: string, options?: Partial): Help; static equals(a: Help | PlainMessage | undefined, b: Help | PlainMessage | undefined): boolean; } /** * Describes a URL link. * * @generated from message google.rpc.Help.Link */ export declare class Help_Link extends Message { /** * Describes what the link offers. * * @generated from field: string description = 1; */ description: string; /** * The URL of the link. * * @generated from field: string url = 2; */ url: string; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "google.rpc.Help.Link"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): Help_Link; static fromJson(jsonValue: JsonValue, options?: Partial): Help_Link; static fromJsonString(jsonString: string, options?: Partial): Help_Link; static equals(a: Help_Link | PlainMessage | undefined, b: Help_Link | PlainMessage | undefined): boolean; } /** * Provides a localized error message that is safe to return to the user * which can be attached to an RPC error. * * @generated from message google.rpc.LocalizedMessage */ export declare class LocalizedMessage extends Message { /** * The locale used following the specification defined at * https://www.rfc-editor.org/rfc/bcp/bcp47.txt. * Examples are: "en-US", "fr-CH", "es-MX" * * @generated from field: string locale = 1; */ locale: string; /** * The localized error message in the above locale. * * @generated from field: string message = 2; */ message: string; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "google.rpc.LocalizedMessage"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): LocalizedMessage; static fromJson(jsonValue: JsonValue, options?: Partial): LocalizedMessage; static fromJsonString(jsonString: string, options?: Partial): LocalizedMessage; static equals(a: LocalizedMessage | PlainMessage | undefined, b: LocalizedMessage | PlainMessage | undefined): boolean; }