Cancel 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
grpc.Code(error) == codes.Unimplemented. Clients can use
Poll 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, op.Poll returns an error
with code Canceled.

Delete 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, grpc.Code(error) == codes.Unimplemented.

If Poll fails, the error is returned and op is unmodified.
If Poll succeeds and the operation has completed with failure,
the error is returned and op.Done will return true.
If Poll succeeds and the operation has completed successfully,
op.Done will return true; if resp != nil, the response of the operation
is stored in resp.

WaitWithInterval blocks until the operation is completed.
If resp != nil, Wait stores the response in resp.
WaitWithInterval polls every interval, except initially
when it polls using exponential backoff.