class OperationResponse (View source)

Response object from a long running API method.

The OperationResponse object is returned by API methods that perform a long running operation. It provides methods that can be used to poll the status of the operation, retrieve the results, and cancel the operation.

To support a long running operation, the server must implement the Operations API, which is used by the OperationResponse object. If more control is required, it is possible to make calls against the Operations API directly instead of via the OperationResponse object using an Operations Client instance.

Traits

Constants

DEFAULT_POLLING_INTERVAL

DEFAULT_POLLING_MULTIPLIER

DEFAULT_MAX_POLLING_INTERVAL

DEFAULT_MAX_POLLING_DURATION

Methods

float
getCurrentTimeMillis()

Protected to allow overriding for tests

sleepMillis(int $millis)

Protected to allow overriding for tests

__construct(string $operationName, object $operationsClient, array $options = [])

OperationResponse constructor.

bool
isDone()

Check whether the operation has completed.

bool
operationSucceeded()

Check whether the operation completed successfully. If the operation is not complete, or if the operation failed, return false.

bool
operationFailed()

Check whether the operation failed. If the operation is not complete, or if the operation succeeded, return false.

string
getName()

Get the formatted name of the operation

bool
pollUntilComplete(array $options = [])

Poll the server in a loop until the operation is complete.

reload()

Reload the status of the operation with a request to the service.

mixed|null
getResult()

Return the result of the operation. If operationSucceeded() is false, return null.

Status|null
getError()

If the operation failed, return the status. If operationFailed() is false, return null.

array
getDescriptorOptions()

Get an array containing the values of 'operationReturnType', 'metadataReturnType', and the polling options initialPollDelayMillis, pollDelayMultiplier, maxPollDelayMillis, and totalPollTimeoutMillis. The array can be passed as the $options argument to the constructor when creating another OperationResponse object.

Operation|mixed|null
getLastProtoResponse()

No description

object
getOperationsClient()

No description

cancel()

Cancel the long-running operation.

delete()

Delete the long-running operation.

mixed
getMetadata()

Get the metadata returned with the last proto response. If a metadata type was provided, then the return value will be of that type - otherwise, the return value will be of type Any. If no metadata object is available, returns null.

Details

protected float getCurrentTimeMillis()

Protected to allow overriding for tests

Return Value

float

Current time in milliseconds

protected sleepMillis(int $millis)

Protected to allow overriding for tests

Parameters

int $millis

__construct(string $operationName, object $operationsClient, array $options = [])

OperationResponse constructor.

Parameters

string $operationName
object $operationsClient
array $options

{ Optional. Options for configuring the operation response object.

@type string $operationReturnType The return type of the longrunning operation.
@type string $metadataReturnType The type of the metadata returned in the operation response.
@type int $initialPollDelayMillis    The initial polling interval to use, in milliseconds.
@type int $pollDelayMultiplier Multiplier applied to the polling interval on each retry.
@type int $maxPollDelayMillis The maximum polling interval to use, in milliseconds.
@type int $totalPollTimeoutMillis The maximum amount of time to continue polling.
@type object $lastProtoResponse A response already received from the server.
@type string $getOperationMethod The method on $operationsClient to get the operation.
@type string $cancelOperationMethod The method on $operationsClient to cancel the operation.
@type string $deleteOperationMethod The method on $operationsClient to delete the operation.
@type string $operationStatusMethod The method on the operation to get the status.
@type string $operationStatusDoneValue The method on the operation to determine if the status is done.
@type array $additionalOperationArguments Additional arguments to pass to $operationsClient methods.
@type string $operationErrorCodeMethod The method on the operation to get the error code
@type string $operationErrorMessageMethod The method on the operation to get the error status

}

bool isDone()

Check whether the operation has completed.

Return Value

bool

bool operationSucceeded()

Check whether the operation completed successfully. If the operation is not complete, or if the operation failed, return false.

Return Value

bool

bool operationFailed()

Check whether the operation failed. If the operation is not complete, or if the operation succeeded, return false.

Return Value

bool

string getName()

Get the formatted name of the operation

Return Value

string

The formatted name of the operation

bool pollUntilComplete(array $options = [])

Poll the server in a loop until the operation is complete.

Return true if the operation completed, otherwise return false. If the $options['totalPollTimeoutMillis'] setting is not set (or set <= 0) then pollUntilComplete will continue polling until the operation completes, and therefore will always return true.

Parameters

array $options

{ Options for configuring the polling behaviour.

@type int $initialPollDelayMillis The initial polling interval to use, in milliseconds.
@type int $pollDelayMultiplier    Multiplier applied to the polling interval on each retry.
@type int $maxPollDelayMillis     The maximum polling interval to use, in milliseconds.
@type int $totalPollTimeoutMillis The maximum amount of time to continue polling, in milliseconds.

}

Return Value

bool

Indicates if the operation completed.

Exceptions

ApiException
ValidationException

reload()

Reload the status of the operation with a request to the service.

mixed|null getResult()

Return the result of the operation. If operationSucceeded() is false, return null.

Return Value

mixed|null

The result of the operation, or null if operationSucceeded() is false

Status|null getError()

If the operation failed, return the status. If operationFailed() is false, return null.

Return Value

Status|null

The status of the operation in case of failure, or null if operationFailed() is false.

array getDescriptorOptions()

Get an array containing the values of 'operationReturnType', 'metadataReturnType', and the polling options initialPollDelayMillis, pollDelayMultiplier, maxPollDelayMillis, and totalPollTimeoutMillis. The array can be passed as the $options argument to the constructor when creating another OperationResponse object.

Return Value

array

Operation|mixed|null getLastProtoResponse()

No description

Return Value

Operation|mixed|null

The last Operation object received from the server.

object getOperationsClient()

No description

Return Value

object

The OperationsClient object used to make requests to the operations API.

cancel()

Cancel the long-running operation.

For operations of type Google\LongRunning\Operation, this method 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 will throw an ApiException with code \Google\Rpc\Code::UNIMPLEMENTED. Clients can continue to use reload and pollUntilComplete 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 a getError() value with a \Google\Rpc\Status code of 1, corresponding to \Google\Rpc\Code::CANCELLED.

delete()

Delete the long-running operation.

For operations of type Google\LongRunning\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 will throw an ApiException with code \Google\Rpc\Code::UNIMPLEMENTED.

mixed getMetadata()

Get the metadata returned with the last proto response. If a metadata type was provided, then the return value will be of that type - otherwise, the return value will be of type Any. If no metadata object is available, returns null.

Return Value

mixed

The metadata returned from the server in the last response.