# REST Resource: operations

- [Resource: Operation](https://developers.google.com/zero-touch/reference/reseller/rest/v1/operations#Operation)
  - [JSON representation](https://developers.google.com/zero-touch/reference/reseller/rest/v1/operations#Operation.SCHEMA_REPRESENTATION)
- [Status](https://developers.google.com/zero-touch/reference/reseller/rest/v1/operations#Status)
  - [JSON representation](https://developers.google.com/zero-touch/reference/reseller/rest/v1/operations#Status.SCHEMA_REPRESENTATION)
- [Methods](https://developers.google.com/zero-touch/reference/reseller/rest/v1/operations#METHODS_SUMMARY)

## 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, // Union field `result` can be only one of the following: "error": { object (`https://developers.google.com/zero-touch/reference/reseller/rest/v1/operations#Status`) }, "response": { "@type": string, field1: ..., ... } // End of list of possible types for union field `result`. } ``` |

| 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` This field will contain a `https://developers.google.com/zero-touch/reference/reseller/rest/v1/DevicesLongRunningOperationMetadata` object if the operation is created by `https://developers.google.com/zero-touch/reference/reseller/rest/v1/partners.devices/claimAsync#google.android.device.provisioning.v1.DeviceProvisioningPartnerService.ClaimDevices`, `https://developers.google.com/zero-touch/reference/reseller/rest/v1/partners.devices/unclaimAsync#google.android.device.provisioning.v1.DeviceProvisioningPartnerService.UnclaimDevices`, or `https://developers.google.com/zero-touch/reference/reseller/rest/v1/partners.devices/updateMetadataAsync#google.android.device.provisioning.v1.DeviceProvisioningPartnerService.UpdateDeviceMetadataInBatch`. 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. |
| Union field `result`. 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` may be set. Some services might not provide the result. `result` can be only one of the following: ||
| `error` | ``object (`https://developers.google.com/zero-touch/reference/reseller/rest/v1/operations#Status`)`` This field will always be not set if the operation is created by `https://developers.google.com/zero-touch/reference/reseller/rest/v1/partners.devices/claimAsync#google.android.device.provisioning.v1.DeviceProvisioningPartnerService.ClaimDevices`, `https://developers.google.com/zero-touch/reference/reseller/rest/v1/partners.devices/unclaimAsync#google.android.device.provisioning.v1.DeviceProvisioningPartnerService.UnclaimDevices`, or `https://developers.google.com/zero-touch/reference/reseller/rest/v1/partners.devices/updateMetadataAsync#google.android.device.provisioning.v1.DeviceProvisioningPartnerService.UpdateDeviceMetadataInBatch`. In this case, error information for each device is set in `https://developers.google.com/zero-touch/reference/reseller/rest/v1/PerDeviceStatus`. |
| `response` | `object` This field will contain a `https://developers.google.com/zero-touch/reference/reseller/rest/v1/DevicesLongRunningOperationResponse` object if the operation is created by `https://developers.google.com/zero-touch/reference/reseller/rest/v1/partners.devices/claimAsync#google.android.device.provisioning.v1.DeviceProvisioningPartnerService.ClaimDevices`, `https://developers.google.com/zero-touch/reference/reseller/rest/v1/partners.devices/unclaimAsync#google.android.device.provisioning.v1.DeviceProvisioningPartnerService.UnclaimDevices`, or `https://developers.google.com/zero-touch/reference/reseller/rest/v1/partners.devices/updateMetadataAsync#google.android.device.provisioning.v1.DeviceProvisioningPartnerService.UpdateDeviceMetadataInBatch`. 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" }`. |

## Status

The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details.

You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).

| JSON representation |
|---|
| ``` { "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } ``` |

| Fields ||
|---|---|
| `code` | `integer` The status code, which should be an enum value of `google.rpc.Code`. |
| `message` | `string` A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the `https://developers.google.com/zero-touch/reference/reseller/rest/v1/operations#Status.FIELDS.details` field, or localized by the client. |
| `details[]` | `object` A list of messages that carry the error details. There is a common set of message types for APIs to use. 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" }`. |

| ## Methods ||
|---|---|
| ### `https://developers.google.com/zero-touch/reference/reseller/rest/v1/operations/get` | Gets the latest state of a long-running operation. |