Class OperationsClientImpl (3.0.0-alpha05)

public sealed class OperationsClientImpl : OperationsClient

Operations client wrapper implementation, for convenient use.

Inheritance

Object > OperationsClient > OperationsClientImpl

Namespace

Google.LongRunning

Assembly

Google.LongRunning.dll

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, ILogger)

public OperationsClientImpl(Operations.OperationsClient grpcClient, OperationsSettings settings, ILogger logger)

Constructs a client wrapper for the Operations service, with the specified gRPC client and settings.

Parameters
NameDescription
grpcClientOperations.OperationsClient

The underlying gRPC client.

settingsOperationsSettings

The base OperationsSettings used within this client.

loggerILogger

Optional ILogger to use within this client.

Properties

Clock

public override IClock Clock { get; }

The clock used for timeouts, retries and polling.

Property Value
TypeDescription
IClock
Overrides

DefaultPollSettings

public override PollSettings DefaultPollSettings { get; }

The poll settings used by default for repeated polling operations. May be null if no defaults have been set.

Property Value
TypeDescription
PollSettings
Overrides

GrpcClient

public override Operations.OperationsClient GrpcClient { get; }

The underlying gRPC Operations client

Property Value
TypeDescription
Operations.OperationsClient
Overrides

Scheduler

public override IScheduler Scheduler { get; }

The scheduler used for timeouts, retries and polling.

Property Value
TypeDescription
IScheduler
Overrides

Methods

CancelOperation(CancelOperationRequest, CallSettings)

public override void CancelOperation(CancelOperationRequest request, CallSettings callSettings = null)

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.

Parameters
NameDescription
requestCancelOperationRequest

The request object containing all of the parameters for the API call.

callSettingsCallSettings

If not null, applies overrides to this RPC call.

Overrides

CancelOperationAsync(CancelOperationRequest, CallSettings)

public override Task CancelOperationAsync(CancelOperationRequest request, CallSettings callSettings = null)

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.

Parameters
NameDescription
requestCancelOperationRequest

The request object containing all of the parameters for the API call.

callSettingsCallSettings

If not null, applies overrides to this RPC call.

Returns
TypeDescription
Task

A Task containing the RPC response.

Overrides

DeleteOperation(DeleteOperationRequest, CallSettings)

public override void DeleteOperation(DeleteOperationRequest request, CallSettings callSettings = null)

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.

Parameters
NameDescription
requestDeleteOperationRequest

The request object containing all of the parameters for the API call.

callSettingsCallSettings

If not null, applies overrides to this RPC call.

Overrides

DeleteOperationAsync(DeleteOperationRequest, CallSettings)

public override Task DeleteOperationAsync(DeleteOperationRequest request, CallSettings callSettings = null)

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.

Parameters
NameDescription
requestDeleteOperationRequest

The request object containing all of the parameters for the API call.

callSettingsCallSettings

If not null, applies overrides to this RPC call.

Returns
TypeDescription
Task

A Task containing the RPC response.

Overrides

GetEffectiveCallSettingsForGetOperation(CallSettings)

protected override CallSettings GetEffectiveCallSettingsForGetOperation(CallSettings 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.

Parameter
NameDescription
callSettingsCallSettings

The per-call override, if any.

Returns
TypeDescription
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)

public override Operation GetOperation(GetOperationRequest request, CallSettings callSettings = null)

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.

Parameters
NameDescription
requestGetOperationRequest

The request object containing all of the parameters for the API call.

callSettingsCallSettings

If not null, applies overrides to this RPC call.

Returns
TypeDescription
Operation

The RPC response.

Overrides

GetOperationAsync(GetOperationRequest, CallSettings)

public override Task<Operation> GetOperationAsync(GetOperationRequest request, CallSettings callSettings = null)

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.

Parameters
NameDescription
requestGetOperationRequest

The request object containing all of the parameters for the API call.

callSettingsCallSettings

If not null, applies overrides to this RPC call.

Returns
TypeDescription
Task<Operation>

A Task containing the RPC response.

Overrides

ListOperations(ListOperationsRequest, CallSettings)

public override PagedEnumerable<ListOperationsResponse, Operation> ListOperations(ListOperationsRequest request, CallSettings callSettings = null)

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 &quot;/v1/{name=users/*}/operations&quot; 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.

Parameters
NameDescription
requestListOperationsRequest

The request object containing all of the parameters for the API call.

callSettingsCallSettings

If not null, applies overrides to this RPC call.

Returns
TypeDescription
PagedEnumerable<ListOperationsResponse, Operation>

A pageable sequence of Operation resources.

Overrides

ListOperationsAsync(ListOperationsRequest, CallSettings)

public override PagedAsyncEnumerable<ListOperationsResponse, Operation> ListOperationsAsync(ListOperationsRequest request, CallSettings callSettings = null)

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 &quot;/v1/{name=users/*}/operations&quot; 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.

Parameters
NameDescription
requestListOperationsRequest

The request object containing all of the parameters for the API call.

callSettingsCallSettings

If not null, applies overrides to this RPC call.

Returns
TypeDescription
PagedAsyncEnumerable<ListOperationsResponse, Operation>

A pageable asynchronous sequence of Operation resources.

Overrides

WaitOperation(WaitOperationRequest, CallSettings)

public override Operation WaitOperation(WaitOperationRequest request, CallSettings callSettings = null)

Waits until the specified long-running operation 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.

Parameters
NameDescription
requestWaitOperationRequest

The request object containing all of the parameters for the API call.

callSettingsCallSettings

If not null, applies overrides to this RPC call.

Returns
TypeDescription
Operation

The RPC response.

Overrides

WaitOperationAsync(WaitOperationRequest, CallSettings)

public override Task<Operation> WaitOperationAsync(WaitOperationRequest request, CallSettings callSettings = null)

Waits until the specified long-running operation 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.

Parameters
NameDescription
requestWaitOperationRequest

The request object containing all of the parameters for the API call.

callSettingsCallSettings

If not null, applies overrides to this RPC call.

Returns
TypeDescription
Task<Operation>

A Task containing the RPC response.

Overrides