wait method
Waits for the specified Operation resource to return as DONE or for the
request to approach the 2 minute deadline, and retrieves the specified
Operation resource.
This method waits for no more than the 2 minutes and then returns the
current state of the operation, which might be DONE or still in
progress. This method is called on a best-effort basis. Specifically: - In
uncommon cases, when the server is overloaded, the request might return
before the default deadline is reached, or might return after zero
seconds. - If the default deadline is reached, there is no guarantee that
the operation is actually done when the method returns. Be prepared to
retry if the operation is not DONE.
Request parameters:
project - Project ID for this request.
Value must have pattern
(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?)).
zone - Name of the zone for this request.
Value must have pattern \[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?.
operation - Name of the Operations resource to return.
Value must have pattern
\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}.
$fields - Selector specifying which fields to include in a partial
response.
Completes with a Operation.
Completes with a commons.ApiRequestError if the API endpoint returned an error.
If the used http.Client completes with an error when making a REST call,
this method will complete with the same error.
Implementation
async.Future<Operation> wait(
core.String project,
core.String zone,
core.String operation, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final url_ = 'projects/' +
commons.escapeVariable('$project') +
'/zones/' +
commons.escapeVariable('$zone') +
'/operations/' +
commons.escapeVariable('$operation') +
'/wait';
final response_ = await _requester.request(
url_,
'POST',
queryParams: queryParams_,
);
return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>);
}