Class OperationsClientImpl
Operations client wrapper implementation, for convenient use.
Inherited Members
Namespace: Google.LongRunning
Assembly: Google.LongRunning.dll
Syntax
public sealed class OperationsClientImpl : OperationsClient
Remarks
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.
Constructors
OperationsClientImpl(Operations.OperationsClient, OperationsSettings)
Constructs a client wrapper for the Operations service, with the specified gRPC client and settings.
Declaration
public OperationsClientImpl(Operations.OperationsClient grpcClient, OperationsSettings settings)
Parameters
Type | Name | Description |
---|---|---|
Operations.OperationsClient | grpcClient | The underlying gRPC client. |
OperationsSettings | settings | The base OperationsSettings used within this client. |
Properties
Clock
The clock used for timeouts, retries and polling.
Declaration
public override IClock Clock { get; }
Property Value
Type | Description |
---|---|
IClock |
Overrides
DefaultPollSettings
The poll settings used by default for repeated polling operations. May be null if no defaults have been set.
Declaration
public override PollSettings DefaultPollSettings { get; }
Property Value
Type | Description |
---|---|
PollSettings |
Overrides
GrpcClient
The underlying gRPC Operations client
Declaration
public override Operations.OperationsClient GrpcClient { get; }
Property Value
Type | Description |
---|---|
Operations.OperationsClient |
Overrides
Scheduler
The scheduler used for timeouts, retries and polling.
Declaration
public override IScheduler Scheduler { get; }
Property Value
Type | Description |
---|---|
IScheduler |
Overrides
Methods
CancelOperation(CancelOperationRequest, CallSettings)
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
.
Declaration
public override void CancelOperation(CancelOperationRequest request, CallSettings callSettings = null)
Parameters
Type | Name | Description |
---|---|---|
CancelOperationRequest | request | The request object containing all of the parameters for the API call. |
CallSettings | callSettings | If not null, applies overrides to this RPC call. |
Overrides
CancelOperationAsync(CancelOperationRequest, CallSettings)
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
.
Declaration
public override Task CancelOperationAsync(CancelOperationRequest request, CallSettings callSettings = null)
Parameters
Type | Name | Description |
---|---|---|
CancelOperationRequest | request | The request object containing all of the parameters for the API call. |
CallSettings | callSettings | If not null, applies overrides to this RPC call. |
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task | A Task containing the RPC response. |
Overrides
DeleteOperation(DeleteOperationRequest, CallSettings)
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
.
Declaration
public override void DeleteOperation(DeleteOperationRequest request, CallSettings callSettings = null)
Parameters
Type | Name | Description |
---|---|---|
DeleteOperationRequest | request | The request object containing all of the parameters for the API call. |
CallSettings | callSettings | If not null, applies overrides to this RPC call. |
Overrides
DeleteOperationAsync(DeleteOperationRequest, CallSettings)
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
.
Declaration
public override Task DeleteOperationAsync(DeleteOperationRequest request, CallSettings callSettings = null)
Parameters
Type | Name | Description |
---|---|---|
DeleteOperationRequest | request | The request object containing all of the parameters for the API call. |
CallSettings | callSettings | If not null, applies overrides to this RPC call. |
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task | A Task containing the RPC response. |
Overrides
GetEffectiveCallSettingsForGetOperation(CallSettings)
Return the CallSettings that would be used by a call to GetOperation(GetOperationRequest, CallSettings), using the base settings of this client and the specified per-call overrides.
Declaration
protected override CallSettings GetEffectiveCallSettingsForGetOperation(CallSettings callSettings)
Parameters
Type | Name | Description |
---|---|---|
CallSettings | callSettings | The per-call override, if any. |
Returns
Type | Description |
---|---|
CallSettings | The effective call settings for a GetOperation RPC. |
Overrides
Remarks
This method is used when polling, to determine the appropriate timeout and cancellation token to use for each call.
GetOperation(GetOperationRequest, CallSettings)
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.
Declaration
public override Operation GetOperation(GetOperationRequest request, CallSettings callSettings = null)
Parameters
Type | Name | Description |
---|---|---|
GetOperationRequest | request | The request object containing all of the parameters for the API call. |
CallSettings | callSettings | If not null, applies overrides to this RPC call. |
Returns
Type | Description |
---|---|
Operation | The RPC response. |
Overrides
GetOperationAsync(GetOperationRequest, CallSettings)
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.
Declaration
public override Task<Operation> GetOperationAsync(GetOperationRequest request, CallSettings callSettings = null)
Parameters
Type | Name | Description |
---|---|---|
GetOperationRequest | request | The request object containing all of the parameters for the API call. |
CallSettings | callSettings | If not null, applies overrides to this RPC call. |
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task<Operation> | A Task containing the RPC response. |
Overrides
ListOperations(ListOperationsRequest, CallSettings)
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.
Declaration
public override PagedEnumerable<ListOperationsResponse, Operation> ListOperations(ListOperationsRequest request, CallSettings callSettings = null)
Parameters
Type | Name | Description |
---|---|---|
ListOperationsRequest | request | The request object containing all of the parameters for the API call. |
CallSettings | callSettings | If not null, applies overrides to this RPC call. |
Returns
Type | Description |
---|---|
PagedEnumerable<ListOperationsResponse, Operation> | A pageable sequence of Operation resources. |
Overrides
ListOperationsAsync(ListOperationsRequest, CallSettings)
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.
Declaration
public override PagedAsyncEnumerable<ListOperationsResponse, Operation> ListOperationsAsync(ListOperationsRequest request, CallSettings callSettings = null)
Parameters
Type | Name | Description |
---|---|---|
ListOperationsRequest | request | The request object containing all of the parameters for the API call. |
CallSettings | callSettings | If not null, applies overrides to this RPC call. |
Returns
Type | Description |
---|---|
PagedAsyncEnumerable<ListOperationsResponse, Operation> | A pageable asynchronous sequence of Operation resources. |
Overrides
WaitOperation(WaitOperationRequest, CallSettings)
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.
Declaration
public override Operation WaitOperation(WaitOperationRequest request, CallSettings callSettings = null)
Parameters
Type | Name | Description |
---|---|---|
WaitOperationRequest | request | The request object containing all of the parameters for the API call. |
CallSettings | callSettings | If not null, applies overrides to this RPC call. |
Returns
Type | Description |
---|---|
Operation | The RPC response. |
Overrides
WaitOperationAsync(WaitOperationRequest, CallSettings)
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.
Declaration
public override Task<Operation> WaitOperationAsync(WaitOperationRequest request, CallSettings callSettings = null)
Parameters
Type | Name | Description |
---|---|---|
WaitOperationRequest | request | The request object containing all of the parameters for the API call. |
CallSettings | callSettings | If not null, applies overrides to this RPC call. |
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task<Operation> | A Task containing the RPC response. |