/// <summary>
 /// 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.
 /// </summary>
 /// <param name="request">The request to send to the server.</param>
 /// <param name="options">The options for the call.</param>
 /// <returns>The call object.</returns>
 public virtual grpc::AsyncUnaryCall <global::Google.LongRunning.Operation> WaitOperationAsync(global::Google.LongRunning.WaitOperationRequest request, grpc::CallOptions options)
 {
     return(CallInvoker.AsyncUnaryCall(__Method_WaitOperation, null, options, request));
 }
 /// <summary>
 /// 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.
 /// </summary>
 /// <param name="request">The request to send to the server.</param>
 /// <param name="options">The options for the call.</param>
 /// <returns>The response received from the server.</returns>
 public virtual global::Google.LongRunning.Operation WaitOperation(global::Google.LongRunning.WaitOperationRequest request, grpc::CallOptions options)
 {
     return(CallInvoker.BlockingUnaryCall(__Method_WaitOperation, null, options, request));
 }
 /// <summary>
 /// 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.
 /// </summary>
 /// <param name="request">The request to send to the server.</param>
 /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
 /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
 /// <param name="cancellationToken">An optional token for canceling the call.</param>
 /// <returns>The call object.</returns>
 public virtual grpc::AsyncUnaryCall <global::Google.LongRunning.Operation> WaitOperationAsync(global::Google.LongRunning.WaitOperationRequest request, grpc::Metadata headers = null, global::System.DateTime?deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
 {
     return(WaitOperationAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken)));
 }
 /// <summary>
 /// 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.
 /// </summary>
 /// <param name="request">The request received from the client.</param>
 /// <param name="context">The context of the server-side call handler being invoked.</param>
 /// <returns>The response to send back to the client (wrapped by a task).</returns>
 public virtual global::System.Threading.Tasks.Task <global::Google.LongRunning.Operation> WaitOperation(global::Google.LongRunning.WaitOperationRequest request, grpc::ServerCallContext context)
 {
     throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
 }