## Resource: Operation

This resource represents a long-running operation that is the result of a network API call.

| JSON representation |
|---|
| ``` { "name": string, "metadata": { "@type": string, field1: ..., ... }, "done": boolean, // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "error": { object (`https://developers.google.com/earth-engine/reference/rest/Shared.Types/ListOperationsResponse#Status`) }, "response": { "@type": string, field1: ..., ... } // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| `name` | `string` The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`. |
| `metadata` | `object` Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any. An object containing fields of an arbitrary type. An additional field `"@type"` contains a URI identifying the type. Example: `{ "id": 1234, "@type": "types.example.com/standard/id" }`. |
| `done` | `boolean` If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available. |
| The operation result, which can be either an `error` or a valid `response`. If `done` == `false`, neither `error` nor `response` is set. If `done` == `true`, exactly one of `error` or `response` can be set. Some services might not provide the result. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `error` | ``object (`https://developers.google.com/earth-engine/reference/rest/Shared.Types/ListOperationsResponse#Status`)`` The error result of the operation in case of failure or cancellation. |
| `response` | `object` The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`. An object containing fields of an arbitrary type. An additional field `"@type"` contains a URI identifying the type. Example: `{ "id": 1234, "@type": "types.example.com/standard/id" }`. |
| End of mutually exclusive fields. ||

| ## Methods ||
|---|---|
| ### `https://developers.google.com/earth-engine/reference/rest/v1beta/projects.operations/cancel` | Starts asynchronous cancellation on a long-running operation. |
| ### `https://developers.google.com/earth-engine/reference/rest/v1beta/projects.operations/delete` | Deletes a long-running operation. |
| ### `https://developers.google.com/earth-engine/reference/rest/v1beta/projects.operations/get` | Gets the latest state of a long-running operation. |
| ### `https://developers.google.com/earth-engine/reference/rest/v1beta/projects.operations/list` | Lists operations that match the specified filter in the request. |
| ### `https://developers.google.com/earth-engine/reference/rest/v1beta/projects.operations/wait` | Waits until the specified long-running operation is done or reaches at most a specified timeout, returning the latest state. |