yandex-cloud
Version:
Yandex Cloud SDK
538 lines (491 loc) • 17.8 kB
TypeScript
// autogenerated file
import * as grpc from 'grpc';
import { util } from 'protobufjs';
import Long = util.Long;
import * as events from 'events';
import { Session } from '../../../index.js';
import * as protobuf from '../../../contrib/google/protobuf';
/**
* The canonical error codes for Google APIs.
*
*
* Sometimes multiple error codes may apply. Services should return
* the most specific error code that applies. For example, prefer
* `OUT_OF_RANGE` over `FAILED_PRECONDITION` if both codes apply.
* Similarly prefer `NOT_FOUND` or `ALREADY_EXISTS` over `FAILED_PRECONDITION`.
*/
export enum Code {
/**
* Not an error; returned on success
*
* HTTP Mapping: 200 OK
*/
OK = 0,
/**
* The operation was cancelled, typically by the caller.
*
* HTTP Mapping: 499 Client Closed Request
*/
CANCELLED = 1,
/**
* Unknown error. For example, this error may be returned when
* a `Status` value received from another address space belongs to
* an error space that is not known in this address space. Also
* errors raised by APIs that do not return enough error information
* may be converted to this error.
*
* HTTP Mapping: 500 Internal Server Error
*/
UNKNOWN = 2,
/**
* The client specified an invalid argument. Note that this differs
* from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments
* that are problematic regardless of the state of the system
* (e.g., a malformed file name).
*
* HTTP Mapping: 400 Bad Request
*/
INVALID_ARGUMENT = 3,
/**
* The deadline expired before the operation could complete. For operations
* that change the state of the system, this error may be returned
* even if the operation has completed successfully. For example, a
* successful response from a server could have been delayed long
* enough for the deadline to expire.
*
* HTTP Mapping: 504 Gateway Timeout
*/
DEADLINE_EXCEEDED = 4,
/**
* Some requested entity (e.g., file or directory) was not found.
*
* Note to server developers: if a request is denied for an entire class
* of users, such as gradual feature rollout or undocumented whitelist,
* `NOT_FOUND` may be used. If a request is denied for some users within
* a class of users, such as user-based access control, `PERMISSION_DENIED`
* must be used.
*
* HTTP Mapping: 404 Not Found
*/
NOT_FOUND = 5,
/**
* The entity that a client attempted to create (e.g., file or directory)
* already exists.
*
* HTTP Mapping: 409 Conflict
*/
ALREADY_EXISTS = 6,
/**
* The caller does not have permission to execute the specified
* operation. `PERMISSION_DENIED` must not be used for rejections
* caused by exhausting some resource (use `RESOURCE_EXHAUSTED`
* instead for those errors). `PERMISSION_DENIED` must not be
* used if the caller can not be identified (use `UNAUTHENTICATED`
* instead for those errors). This error code does not imply the
* request is valid or the requested entity exists or satisfies
* other pre-conditions.
*
* HTTP Mapping: 403 Forbidden
*/
PERMISSION_DENIED = 7,
/**
* The request does not have valid authentication credentials for the
* operation.
*
* HTTP Mapping: 401 Unauthorized
*/
UNAUTHENTICATED = 16,
/**
* Some resource has been exhausted, perhaps a per-user quota, or
* perhaps the entire file system is out of space.
*
* HTTP Mapping: 429 Too Many Requests
*/
RESOURCE_EXHAUSTED = 8,
/**
* The operation was rejected because the system is not in a state
* required for the operation's execution. For example, the directory
* to be deleted is non-empty, an rmdir operation is applied to
* a non-directory, etc.
*
* Service implementors can use the following guidelines to decide
* between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:
* (a) Use `UNAVAILABLE` if the client can retry just the failing call.
* (b) Use `ABORTED` if the client should retry at a higher level
* (e.g., when a client-specified test-and-set fails, indicating the
* client should restart a read-modify-write sequence).
* (c) Use `FAILED_PRECONDITION` if the client should not retry until
* the system state has been explicitly fixed. E.g., if an "rmdir"
* fails because the directory is non-empty, `FAILED_PRECONDITION`
* should be returned since the client should not retry unless
* the files are deleted from the directory.
*
* HTTP Mapping: 400 Bad Request
*/
FAILED_PRECONDITION = 9,
/**
* The operation was aborted, typically due to a concurrency issue such as
* a sequencer check failure or transaction abort.
*
* See the guidelines above for deciding between `FAILED_PRECONDITION`,
* `ABORTED`, and `UNAVAILABLE`.
*
* HTTP Mapping: 409 Conflict
*/
ABORTED = 10,
/**
* The operation was attempted past the valid range. E.g., seeking or
* reading past end-of-file.
*
* Unlike `INVALID_ARGUMENT`, this error indicates a problem that may
* be fixed if the system state changes. For example, a 32-bit file
* system will generate `INVALID_ARGUMENT` if asked to read at an
* offset that is not in the range [0,2^32-1], but it will generate
* `OUT_OF_RANGE` if asked to read from an offset past the current
* file size.
*
* There is a fair bit of overlap between `FAILED_PRECONDITION` and
* `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific
* error) when it applies so that callers who are iterating through
* a space can easily look for an `OUT_OF_RANGE` error to detect when
* they are done.
*
* HTTP Mapping: 400 Bad Request
*/
OUT_OF_RANGE = 11,
/**
* The operation is not implemented or is not supported/enabled in this
* service.
*
* HTTP Mapping: 501 Not Implemented
*/
UNIMPLEMENTED = 12,
/**
* Internal errors. This means that some invariants expected by the
* underlying system have been broken. This error code is reserved
* for serious errors.
*
* HTTP Mapping: 500 Internal Server Error
*/
INTERNAL = 13,
/**
* The service is currently unavailable. This is most likely a
* transient condition, which can be corrected by retrying with
* a backoff.
*
* See the guidelines above for deciding between `FAILED_PRECONDITION`,
* `ABORTED`, and `UNAVAILABLE`.
*
* HTTP Mapping: 503 Service Unavailable
*/
UNAVAILABLE = 14,
/**
* Unrecoverable data loss or corruption.
*
* HTTP Mapping: 500 Internal Server Error
*/
DATA_LOSS = 15,
}
/**
* 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 retires have been reached or a maximum retry delay cap has been
* reached.
*/
export interface RetryInfo {
/**
* Clients should wait at least this long between retrying the same request.
*/
retryDelay?: protobuf.Duration;
}
/**
* Describes additional debugging info.
*/
export interface DebugInfo {
/**
* The stack trace entries indicating where the error occurred.
*/
stackEntries?: string[];
/**
* Additional debugging information provided by the server.
*/
detail?: string;
}
/**
* 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 RetryDetail and Help types for other details about handling a
* quota failure.
*/
export interface QuotaFailure {
/**
* Describes all quota violations.
*/
violations?: QuotaFailure.Violation[];
}
export namespace QuotaFailure {
/**
* A message type used to describe a single quota violation. For example, a
* daily quota or a custom quota that was exceeded.
*/
export interface Violation {
/**
* The subject on which the quota check failed.
* For example, "clientip:<ip address of client>" or "project:<Google
* developer project id>".
*/
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".
*/
description?: string;
}
}
/**
* 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.
*/
export interface PreconditionFailure {
/**
* Describes all precondition violations.
*/
violations?: PreconditionFailure.Violation[];
}
export namespace PreconditionFailure {
/**
* A message type used to describe a single precondition failure.
*/
export interface Violation {
/**
* The type of PreconditionFailure. We recommend using a service-specific
* enum type to define the supported precondition violation types. For
* example, "TOS" for "Terms of Service violation".
*/
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.
*/
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".
*/
description?: string;
}
}
/**
* Describes violations in a client request. This error type focuses on the
* syntactic aspects of the request.
*/
export interface BadRequest {
/**
* Describes all violations in a client request.
*/
fieldViolations?: BadRequest.FieldViolation[];
}
export namespace BadRequest {
/**
* A message type used to describe a single bad request field.
*/
export interface FieldViolation {
/**
* A path leading to a field in the request body. The value will be a
* sequence of dot-separated identifiers that identify a protocol buffer
* field. E.g., "field_violations.field" would identify this field.
*/
field?: string;
/**
* A description of why the request element is bad.
*/
description?: string;
}
}
/**
* Contains metadata about the request that clients can attach when filing a bug
* or providing other forms of feedback.
*/
export interface RequestInfo {
/**
* 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.
*/
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.
*/
servingData?: string;
}
/**
* Describes the resource that is being accessed.
*/
export interface ResourceInfo {
/**
* 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".
*/
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].
*/
resourceName?: string;
/**
* The owner of the resource (optional).
* For example, "user:<owner email>" or "project:<Google developer project
* id>".
*/
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.
*/
description?: string;
}
/**
* 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.
*/
export interface Help {
/**
* URL(s) pointing to additional information on handling the current error.
*/
links?: Help.Link[];
}
export namespace Help {
/**
* Describes a URL link.
*/
export interface Link {
/**
* Describes what the link offers.
*/
description?: string;
/**
* The URL of the link.
*/
url?: string;
}
}
/**
* Provides a localized error message that is safe to return to the user
* which can be attached to an RPC error.
*/
export interface LocalizedMessage {
/**
* The locale used following the specification defined at
* http://www.rfc-editor.org/rfc/bcp/bcp47.txt.
* Examples are: "en-US", "fr-CH", "es-MX"
*/
locale?: string;
/**
* The localized error message in the above locale.
*/
message?: string;
}
/**
* 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). The error model is designed to be:
*
* - Simple to use and understand for most users
* - Flexible enough to meet unexpected needs
*
* # Overview
*
* The `Status` message contains three pieces of data: error code, error message,
* and error details. The error code should be an enum value of
* [google.rpc.Code][google.rpc.Code], but it may accept additional error codes if needed. The
* error message should be a developer-facing English message that helps
* developers *understand* and *resolve* the error. If a localized user-facing
* error message is needed, put the localized message in the error details or
* localize it in the client. The optional error details may contain arbitrary
* information about the error. There is a predefined set of error detail types
* in the package `google.rpc` that can be used for common error conditions.
*
* # Language mapping
*
* The `Status` message is the logical representation of the error model, but it
* is not necessarily the actual wire format. When the `Status` message is
* exposed in different client libraries and different wire protocols, it can be
* mapped differently. For example, it will likely be mapped to some exceptions
* in Java, but more likely mapped to some error codes in C.
*
* # Other uses
*
* The error model and the `Status` message can be used in a variety of
* environments, either with or without APIs, to provide a
* consistent developer experience across different environments.
*
* Example uses of this error model include:
*
* - Partial errors. If a service needs to return partial errors to the client,
* it may embed the `Status` in the normal response to indicate the partial
* errors.
*
* - Workflow errors. A typical workflow has multiple steps. Each step may
* have a `Status` message for error reporting.
*
* - Batch operations. If a client uses batch request and batch response, the
* `Status` message should be used directly inside batch response, one for
* each error sub-response.
*
* - Asynchronous operations. If an API call embeds asynchronous operation
* results in its response, the status of those operations should be
* represented directly using the `Status` message.
*
* - Logging. If some API errors are stored in logs, the message `Status` could
* be used directly after any stripping needed for security/privacy reasons.
*/
export interface Status {
/**
* The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
*/
code?: Long;
/**
* 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][google.rpc.Status.details] field, or localized by the client.
*/
message?: string;
/**
* A list of messages that carry the error details. There is a common set of
* message types for APIs to use.
*/
details?: protobuf.Any[];
}