google.longrunning
Operations
Manages long-running operations with an API service.
When an API method normally takes long time to complete, it can be designed
to return [Operation][google.longrunning.Operation] to the client, and the client can use this
interface to receive the real response asynchronously by polling the
operation resource, or pass the operation resource to another API (such as
Google Cloud Pub/Sub API) to receive the response. Any API service that
returns long-running operations should implement the Operations
interface
so developers can have a consistent client experience.
ListOperations
rpc ListOperations(ListOperationsRequest) ListOperationsResponse
Lists operations that match the specified filter in the request. If the
server doesn't support this method, it returns UNIMPLEMENTED
.
NOTE: the name
binding allows API services to override the binding
to use different resource name schemes, such as users/*/operations
. To
override the binding, API services can add a binding such as
"/v1/{name=users/*}/operations"
to their service configuration.
For backwards compatibility, the default name includes the operations
collection id, however overriding users must ensure the name binding
is the parent resource, without the operations collection id.
REST mapping
Verb | Path | Body |
---|---|---|
GET | /v1/{name=operations} |
GetOperation
rpc GetOperation(GetOperationRequest) Operation
Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
REST mapping
Verb | Path | Body |
---|---|---|
GET | /v1/{name=operations/**} |
DeleteOperation
rpc DeleteOperation(DeleteOperationRequest) google.protobuf.Empty
Deletes a long-running operation. This method indicates that the client is
no longer interested in the operation result. It does not cancel the
operation. If the server doesn't support this method, it returns
google.rpc.Code.UNIMPLEMENTED
.
REST mapping
Verb | Path | Body |
---|---|---|
DELETE | /v1/{name=operations/**} |
CancelOperation
rpc CancelOperation(CancelOperationRequest) google.protobuf.Empty
Starts asynchronous cancellation on a long-running operation. The server
makes a best effort to cancel the operation, but success is not
guaranteed. If the server doesn't support this method, it returns
google.rpc.Code.UNIMPLEMENTED
. Clients can use
[Operations.GetOperation][google.longrunning.Operations.GetOperation] or
other methods to check whether the cancellation succeeded or whether the
operation completed despite cancellation. On successful cancellation,
the operation is not deleted; instead, it becomes an operation with
an [Operation.error][google.longrunning.Operation.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
corresponding to Code.CANCELLED
.
REST mapping
Verb | Path | Body |
---|---|---|
POST | /v1/{name=operations/**}:cancel | * |
WaitOperation
rpc WaitOperation(WaitOperationRequest) Operation
Waits for the specified long-running operation until it is done or reaches
at most a specified timeout, returning the latest state. If the operation
is already done, the latest state is immediately returned. If the timeout
specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
timeout is used. If the server does not support this method, it returns
google.rpc.Code.UNIMPLEMENTED
.
Note that this method is on a best-effort basis. It may return the latest
state before the specified timeout (including immediately), meaning even an
immediate response is no guarantee that the operation is done.
REST mapping
Verb | Path | Body |
---|---|---|
Messages
CancelOperationRequest
The request message for [Operations.CancelOperation][google.longrunning.Operations.CancelOperation].
Field | Type | Description |
---|---|---|
name | string | The name of the operation resource to be cancelled. |
DeleteOperationRequest
The request message for [Operations.DeleteOperation][google.longrunning.Operations.DeleteOperation].
Field | Type | Description |
---|---|---|
name | string | The name of the operation resource to be deleted. |
GetOperationRequest
The request message for [Operations.GetOperation][google.longrunning.Operations.GetOperation].
Field | Type | Description |
---|---|---|
name | string | The name of the operation resource. |
ListOperationsRequest
The request message for [Operations.ListOperations][google.longrunning.Operations.ListOperations].
Field | Type | Description |
---|---|---|
name | string | The name of the operation's parent resource. |
filter | string | The standard list filter. |
page_size | int32 | The standard list page size. |
page_token | string | The standard list page token. |
ListOperationsResponse
The response message for [Operations.ListOperations][google.longrunning.Operations.ListOperations].
Field | Type | Description |
---|---|---|
operations | Operation[] | A list of operations that matches the specified filter in the request. |
next_page_token | string | The standard List next-page token. |
Operation
This resource represents a long-running operation that is the result of a network API call.
Field | Type | Description |
---|---|---|
name | string | The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should be a resource name ending with operations/{unique_id} . |
metadata | google.protobuf.Any | Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any. |
done | bool | If the value is false , it means the operation is still in progress. If true , the operation is completed, and either error or response is available. |
oneof result.error | google.rpc.Status | The error result of the operation in case of failure or cancellation. |
oneof result.response | google.protobuf.Any | The normal response of the operation in case of success. If the original method returns no data on success, such as Delete , the response is google.protobuf.Empty . If the original method is standard Get /Create /Update , the response should be the resource. For other methods, the response should have the type XxxResponse , where Xxx is the original method name. For example, if the original method name is TakeSnapshot() , the inferred response type is TakeSnapshotResponse . |
OperationInfo
A message representing the message types used by a long-running operation.
Example:
rpc LongRunningRecognize(LongRunningRecognizeRequest) returns (google.longrunning.Operation) { option (google.longrunning.operation_info) = { response_type: "LongRunningRecognizeResponse" metadata_type: "LongRunningRecognizeMetadata" }; }
Field | Type | Description |
---|---|---|
response_type | string | Required. The message name of the primary return type for this long-running operation. This type will be used to deserialize the LRO's response. If the response is in a different package from the rpc, a fully-qualified message name must be used (e.g. google.protobuf.Struct ).Note: Altering this value constitutes a breaking change. |
metadata_type | string | Required. The message name of the metadata type for this long-running operation. If the response is in a different package from the rpc, a fully-qualified message name must be used (e.g. google.protobuf.Struct ).Note: Altering this value constitutes a breaking change. |
WaitOperationRequest
The request message for [Operations.WaitOperation][google.longrunning.Operations.WaitOperation].
Field | Type | Description |
---|---|---|
name | string | The name of the operation resource to wait on. |
timeout | google.protobuf.Duration | The maximum duration to wait before timing out. If left blank, the wait will be at most the time permitted by the underlying HTTP/RPC protocol. If RPC context deadline is also specified, the shorter one will be used. |