# Task Management API
**Base URL**: https://dev-cloud.acronis.com/api/task_manager/v2
## Security
### OAuth 2.0
Supported grant types:
* `client_credentials`
* `password`
Authorization URI example: `https://dev-cloud.acronis.com/api/2/idp/authorize`
Access token URI example: `https://dev-cloud.acronis.com/api/2/idp/token`
### Request parameters
#### Headers
| Name | Description |
|------|-------------|
| `Authorization` | (Required) Used to send a valid OAuth 2 access token.
**Type**: String
**Pattern**: `^Bearer [0-9a-zA-Z\-\._~+/]*=$` |
### Responses
| Code | Description |
|------|-------------|
| `401` | The request was denied due to an invalid or missing bearer access token. |
| `403` | The request was denied due to the bearer access token having insufficient privileges. |
### Scopes
* `urn:acronis.com::task_manager::viewer`
* `urn:acronis.com::task_manager::issuer`
* `urn:acronis.com::task_manager::consumer`
* `urn:acronis.com::task_manager::admin`
## Endpoints
### Fetch a list of tasks (GET /tasks)
Fetches a list of tasks.
# Sustainable behavior (informative):
If `sustainable=true` and a task is returned to the queue, its sustainable activities are moved to `enqueued`
and must be restarted via `PUT /activities/{id}/started`. If not restarted by task completion, they will be marked `abandoned`.
#### Security
The endpoint supports the following authorization methods: `OAuth 2.0`
For OAuth2 authorization method, one of the following scopes is required by the endpoint:
* `urn:acronis.com::task_manager::admin`
* `urn:acronis.com::task_manager::viewer`
#### Request parameters
##### Query parameters
| Name | Description |
|------|-------------|
| `lod` | (Optional) **Type**: String
**Allowed values**:
- `tiny`
- `short`
- `long`
- `full`
- `debug`
- `count` |
| `limit` | (Optional) A number of tasks to return in one page. This parameter restricts usage of the query string parameters to `after`.
**Type**: Integer |
| `after` | (Optional) The page token with the next page of the results. Can be used only with the `limit` query string parameter.
**Type**: String |
| `order` | (Optional) A position-dependent ordering filter.
Available ordering operators are:
- `asc(field)` - ascending order
- `desc(field)` - descending order
Where "field" is one of the following values: `id`, `uuid`, `type`, `priority`,
`startedByUser`, `state`, `enqueuedAt`, `assignedAt`, `startedAt`, `updatedAt`, `completedAt`.
**Type**: String |
| `executorId` | (Optional) filter per task executor ID.
**Type**: String |
| `id` | (Optional) An ID filter. Multiple entries are accepted.
**Type**: Integer |
| `uuid` | (Optional) A UUID filter. Multiple entries are accepted.
**Type**: String
**Pattern**: `^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$` |
| `type` | (Optional) A type filter. Multiple entries are accepted.
**Type**: String |
| `queue` | (Optional) Queue filter, multiple entries are accepted
**Type**: String |
| `priority` | (Optional) Priority filter, multiple entries are accepted
**Type**: String
**Allowed values**:
- `low`
- `belowNormal`
- `normal`
- `aboveNormal`
- `high` |
| `startedBy` | (Optional) Started by user filter, multiple entries are accepted, 'like' is supported in the form 'like(value)'
**Type**: String |
| `policyId` | (Optional) A policy ID filter. Multiple entries are accepted.
**Type**: String |
| `policyName` | (Optional) A policy name filter. Multiple entries are accepted.
The 'like' operator can be used to find a policy name by a sequence of characters. Usage: `like(value)` where "value" is a sequence of characters.
**Type**: String |
| `policyType` | (Optional) A policy type filter. Multiple entries are accepted.
**Type**: String |
| `resourceId` | (Optional) A resource ID filter. Multiple entries are accepted.
**Type**: String |
| `resourceName` | (Optional) A resource name filter. Multiple entries are accepted.
The 'like' operator can be used to find a resource name by a sequence of characters. Usage: `like(value)` where "value" is a sequence of characters.
**Type**: String |
| `resourceType` | (Optional) A resource type filter. Multiple entries are accepted.
**Type**: String |
| `workflowId` | (Optional) A workflow ID filter. Multiple entries are accepted.
**Type**: Integer |
| `state` | (Optional) A state filter. Multiple entries are accepted.
**Type**: String
**Allowed values**:
- `enqueued`
- `assigned`
- `started`
- `paused`
- `completed` |
| `resultCode` | (Optional) A code filter. Multiple entries are accepted.
**Type**: String
**Allowed values**:
- `ok`
- `error`
- `warning`
- `cancelled`
- `abandoned`
- `timedout` |
| `enqueuedAt` | (Optional) A time filter. Single entry is accepted.
**Type**: String |
| `assignedAt` | (Optional) A time filter. Single entry is accepted.
**Type**: String |
| `startedAt` | (Optional) A time filter. Single entry is accepted.
**Type**: String |
| `updatedAt` | (Optional) A time filter. Single entry is accepted.
**Type**: String |
| `completedAt` | (Optional) A time filter. Single entry is accepted.
**Type**: String |
| `tag` | (Optional) A tag filter. Multiple entries are accepted.
**Type**: String |
| `affinityAgentId` | (Optional) The ID of the agent that is bound to the task.
**Type**: String |
| `affinityClusterId` | (Optional) The ID of the cluster that is bound to the task.
**Type**: String |
| `allow_deleted` | (Optional) If true, allows to work with deleted entities.
**Type**: Boolean |
#### Responses
##### `200`
**Media type**: `application/json`
- `items` — **Type**: Array of Object
**Array type description:**
The task object.
**Type**: Object
- `cursors` — **Type**: Object
**Example**:
```json
{
"items": [
{
"state": "enqueued",
"result": {
"code": "ok",
"error": {
"domain": "",
"code": "",
"reason": "",
"context": {},
"kbLink": {
"lineTag": "",
"serCode": "",
"version": "",
"build": 0,
"product": "",
"os": ""
},
"debug": {}
},
"warnings": [
{
"domain": "",
"code": "",
"reason": "",
"context": {},
"kbLink": {
"lineTag": "",
"serCode": "",
"version": "",
"build": 0,
"product": "",
"os": ""
},
"debug": {}
}
],
"payload": {}
},
"id": 0,
"startedAt": "",
"completedAt": "",
"issuer": {
"id": "",
"clusterId": ""
},
"cancelRequested": true,
"blockers": [
{
"taskId": 0,
"tenant": {
"id": "",
"uuid": "",
"name": "",
"locator": ""
},
"id": 0,
"possibleSolutions": [
{
"key": "",
"context": {}
}
],
"issue": {
"key": "",
"context": {}
},
"uuid": "",
"solution": {
"key": "",
"context": {}
},
"activityId": 0
}
],
"enqueuedAt": "",
"updatedAt": "",
"executor": {
"id": "",
"clusterId": ""
},
"assignCount": 0,
"assignedAt": ""
}
],
"cursors": {
"after": "",
"before": ""
}
}
```
##### `400` — Bad user input.
**Media type**: `application/json`
- `domain` — Error type or category. Can be ['Licensing','Access'] or name of service (for example 'PolicyManager' or 'VaultManager')
**Type**: String
- `code` — Error id or code, unique in the domain. Same as in 'reason' field
**Type**: String
- `reason` — Obsolete. Error id or code, unique in the domain. Same as in 'code' field
**Type**: String
- `context` — Error context dictionary
**Type**: Object
- `kbLink` — Components for kblink
**Type**: Object
- `debug` — Error debug information (map type)
**Type**: Object
**Example**:
```json
{
"domain": "",
"code": "",
"reason": "",
"context": {},
"kbLink": {
"lineTag": "",
"serCode": "",
"version": "",
"build": 0,
"product": "",
"os": ""
},
"debug": {}
}
```
##### `500` — Server error.
**Media type**: `application/json`
- `domain` — Error type or category. Can be ['Licensing','Access'] or name of service (for example 'PolicyManager' or 'VaultManager')
**Type**: String
- `code` — Error id or code, unique in the domain. Same as in 'reason' field
**Type**: String
- `reason` — Obsolete. Error id or code, unique in the domain. Same as in 'code' field
**Type**: String
- `context` — Error context dictionary
**Type**: Object
- `kbLink` — Components for kblink
**Type**: Object
- `debug` — Error debug information (map type)
**Type**: Object
**Example**:
```json
{
"domain": "",
"code": "",
"reason": "",
"context": {},
"kbLink": {
"lineTag": "",
"serCode": "",
"version": "",
"build": 0,
"product": "",
"os": ""
},
"debug": {}
}
```
### Fetch a task (GET /tasks/{task-id})
Fetches a task by provided task ID.
#### Security
The endpoint supports the following authorization methods: `OAuth 2.0`
For OAuth2 authorization method, one of the following scopes is required by the endpoint:
* `urn:acronis.com::task_manager::admin`
* `urn:acronis.com::task_manager::viewer`
#### Request parameters
##### Query parameters
| Name | Description |
|------|-------------|
| `lod` | (Optional) **Type**: String
**Allowed values**:
- `tiny`
- `short`
- `long`
- `full`
- `debug` |
| `allow_deleted` | (Optional) If true, allows to work with deleted entities.
**Type**: Boolean |
#### Responses
##### `200`
**Media type**: `application/json`
- `state` — An execution state.
**Type**: String
**Allowed values**:
- `enqueued`
- `assigned`
- `started`
- `paused`
- `completed`
- `ackTimeout` — The time limit during which the executor has to confirm that it has started the task. Missing property OR 0 value will be defaulted to "5s".
**Type**: String
- `queueTimeout` — The time limit during which the task can remain unassigned. Missing property OR 0 value means "infinite".
**Type**: String
- `context` — A context of the task.
**Type**: any
- `tenant` — A tenant identity.
**Type**: Object
- `result` — An execution result.
**Type**: Object
- `argument` — An argument of the task.
**Type**: any
- `queue` — The target queue.
**Type**: String
- `startedAt` — Time in RFC3339 format.
**Type**: String
- `id` — Server-generated unique numeric identifier for the task object.
**Type**: Integer
- `startedByUser` — The name of the user who created the task.
**Type**: String
- `completedAt` — Time in RFC3339 format.
**Type**: String
- `heartBeatInterval` — The interval that is required for the executor to report the current status of the task. Missing property OR 0 value means "infinite". Cannot be infinite for cancellable tasks.
**Type**: String
- `resource` — The link to the resource which is related to the task.
**Type**: Object
- `issuer` — The entity that created the task.
**Type**: Object
- `cancelRequested` — Whether the task was requested to be cancelled.
**Type**: Boolean
- `uuid` — Universally unique identifier for the task object. If not set, it will be automatically generated by the server.
**Type**: String
**Pattern**: `^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$`
- `tags` — A list of user-defined tags.
**Type**: Array of String
**Array type description:**
A string that may contain up to 64 characters.
**Type**: String
- `blockers` — A list of reasons why the task cannot be completed without a user input.
**Type**: Array of Object
**Array type description:**
The task blocker object.
**Type**: Object
- `progress` — A progress value.
**Type**: Object
- `enqueuedAt` — Time in RFC3339 format.
**Type**: String
- `cancellable` — Whether the task can be canceled. If true, the `heartBeatInterval` parameter also must be set to a non-infinite value.
**Type**: Boolean
- `updatedAt` — Time in RFC3339 format.
**Type**: String
- `executor` — The identity of the executor.
**Type**: Object
- `maxAssignCount` — The limit for assignment attempts. Default is 1.
**Type**: Integer
- `execTimeout` — The time limit during which the executor has to complete the task. Missing property OR 0 value means "infinite".
**Type**: String
- `policy` — The link to the policy which execution requires to create the task.
**Type**: Object
- `lifeTime` — The time limit during which the task can remain uncompleted. Missing property OR 0 value means "infinite".
**Type**: String
- `workflowId` — The ID of the workflow that is related to the task.
**Type**: Integer
- `sustainable` — If true, the task is sustainable:
- When the task is returned to the queue, its sustainable activities move to `enqueued` instead of failing.
- Manual abandon does NOT consume an assignment attempt (`assignCount` unchanged).
- Auto-abandon on missed heartbeats DOES consume an assignment attempt.
**Type**: Boolean
- `type` — The type of the task that is defined by the user.
**Type**: String
- `assignCount` — Current count of the assignments.
**Type**: Integer
- `priority` — The task priority.
**Type**: String
**Allowed values**:
- `low`
- `belowNormal`
- `normal`
- `aboveNormal`
- `high`
- `assignedAt` — Time in RFC3339 format.
**Type**: String
- `affinity` — An object containing the information about task affinity.
**Type**: Object
**Example**:
```json
{
"state": "enqueued",
"ackTimeout": "",
"queueTimeout": "",
"context": {},
"tenant": {
"id": "",
"uuid": "",
"name": "",
"locator": ""
},
"result": {
"code": "ok",
"error": {
"domain": "",
"code": "",
"reason": "",
"context": {},
"kbLink": {
"lineTag": "",
"serCode": "",
"version": "",
"build": 0,
"product": "",
"os": ""
},
"debug": {}
},
"warnings": [
{
"domain": "",
"code": "",
"reason": "",
"context": {},
"kbLink": {
"lineTag": "",
"serCode": "",
"version": "",
"build": 0,
"product": "",
"os": ""
},
"debug": {}
}
],
"payload": {}
},
"argument": {},
"queue": "",
"startedAt": "",
"id": 0,
"startedByUser": "",
"completedAt": "",
"heartBeatInterval": "",
"resource": {
"name": "",
"id": "",
"type": ""
},
"issuer": {
"id": "",
"clusterId": ""
},
"cancelRequested": true,
"uuid": "",
"tags": [
""
],
"blockers": [
{
"taskId": 0,
"tenant": {
"id": "",
"uuid": "",
"name": "",
"locator": ""
},
"id": 0,
"possibleSolutions": [
{
"key": "",
"context": {}
}
],
"issue": {
"key": "",
"context": {}
},
"uuid": "",
"solution": {
"key": "",
"context": {}
},
"activityId": 0
}
],
"progress": {
"current": 0,
"bytesProcessed": 0,
"processingSpeed": 0,
"leftTime": "",
"bytesSaved": 0,
"bottleneck": {
"source": 0,
"destination": 0,
"processing": 0
},
"total": 0
},
"enqueuedAt": "",
"cancellable": true,
"updatedAt": "",
"executor": {
"id": "",
"clusterId": ""
},
"maxAssignCount": 0,
"execTimeout": "",
"policy": {
"name": "",
"id": "",
"type": ""
},
"lifeTime": "",
"workflowId": 0,
"sustainable": true,
"type": "",
"assignCount": 0,
"priority": "low",
"assignedAt": "",
"affinity": {
"agentId": "",
"clusterId": ""
}
}
```
##### `404` — The task does not exist.
**Media type**: `application/json`
- `domain` — Error type or category. Can be ['Licensing','Access'] or name of service (for example 'PolicyManager' or 'VaultManager')
**Type**: String
- `code` — Error id or code, unique in the domain. Same as in 'reason' field
**Type**: String
- `reason` — Obsolete. Error id or code, unique in the domain. Same as in 'code' field
**Type**: String
- `context` — Error context dictionary
**Type**: Object
- `kbLink` — Components for kblink
**Type**: Object
- `debug` — Error debug information (map type)
**Type**: Object
**Example**:
```json
{
"domain": "",
"code": "",
"reason": "",
"context": {},
"kbLink": {
"lineTag": "",
"serCode": "",
"version": "",
"build": 0,
"product": "",
"os": ""
},
"debug": {}
}
```
##### `400` — Bad user input.
**Media type**: `application/json`
- `domain` — Error type or category. Can be ['Licensing','Access'] or name of service (for example 'PolicyManager' or 'VaultManager')
**Type**: String
- `code` — Error id or code, unique in the domain. Same as in 'reason' field
**Type**: String
- `reason` — Obsolete. Error id or code, unique in the domain. Same as in 'code' field
**Type**: String
- `context` — Error context dictionary
**Type**: Object
- `kbLink` — Components for kblink
**Type**: Object
- `debug` — Error debug information (map type)
**Type**: Object
**Example**:
```json
{
"domain": "",
"code": "",
"reason": "",
"context": {},
"kbLink": {
"lineTag": "",
"serCode": "",
"version": "",
"build": 0,
"product": "",
"os": ""
},
"debug": {}
}
```
##### `500` — Server error.
**Media type**: `application/json`
- `domain` — Error type or category. Can be ['Licensing','Access'] or name of service (for example 'PolicyManager' or 'VaultManager')
**Type**: String
- `code` — Error id or code, unique in the domain. Same as in 'reason' field
**Type**: String
- `reason` — Obsolete. Error id or code, unique in the domain. Same as in 'code' field
**Type**: String
- `context` — Error context dictionary
**Type**: Object
- `kbLink` — Components for kblink
**Type**: Object
- `debug` — Error debug information (map type)
**Type**: Object
**Example**:
```json
{
"domain": "",
"code": "",
"reason": "",
"context": {},
"kbLink": {
"lineTag": "",
"serCode": "",
"version": "",
"build": 0,
"product": "",
"os": ""
},
"debug": {}
}
```
### Fetch a list of activities (GET /activities)
Fetches a list of activities.
# Sustainable behavior (informative):
Sustainable activities move to `enqueued` when their task is requeued and must be restarted with `PUT /activities/{id}/started`.
If not restarted by task completion, they will be marked `abandoned`.
#### Security
The endpoint supports the following authorization methods: `OAuth 2.0`
For OAuth2 authorization method, one of the following scopes is required by the endpoint:
* `urn:acronis.com::task_manager::admin`
* `urn:acronis.com::task_manager::viewer`
#### Request parameters
##### Query parameters
| Name | Description |
|------|-------------|
| `lod` | (Optional) **Type**: String
**Allowed values**:
- `tiny`
- `short`
- `long`
- `full`
- `debug`
- `count` |
| `limit` | (Optional) A number of activities to return in one page. This parameter restricts usage of the query string parameters to `after`.
**Type**: Integer |
| `after` | (Optional) The page token with the next page of the results. Can be used only with the `limit` query string parameter.
**Type**: String |
| `order` | (Optional) An ordering filter (position-dependent).
Available ordering operators are:
- `asc(field)` - ascending order
- `desc(field)` - descending order
Where "field" is one of the following values: `id`, `uuid`, `type`, `startedByUser`,
`state`, `createdAt`, `startedAt`, `updatedAt`, `completedAt`.
**Type**: String |
| `id` | (Optional) An ID filter. Multiple entries are accepted.
**Type**: Integer |
| `uuid` | (Optional) A UUID filter. Multiple entries are accepted.
**Type**: String
**Pattern**: `^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$` |
| `type` | (Optional) A type filter. Multiple entries are accepted.
**Type**: String |
| `startedBy` | (Optional) A filter by a user who started the activity. Multiple entries are accepted.
The 'like' operator can be used to find a policy name by a sequence of characters. Usage: `like(value)` where "value" is a sequence of characters.
**Type**: String |
| `policyId` | (Optional) A policy ID filter. Multiple entries are accepted.
**Type**: String |
| `policyName` | (Optional) A policy name filter. Multiple entries are accepted.
The 'like' operator can be used to find a policy name by a sequence of characters. Usage: `like(value)` where "value" is a sequence of characters.
**Type**: String |
| `policyType` | (Optional) A policy type filter. Multiple entries are accepted.
**Type**: String |
| `resourceId` | (Optional) A resource ID filter. Multiple entries are accepted.
**Type**: String |
| `resourceName` | (Optional) A resource name filter. Multiple entries are accepted.
The 'like' operator can be used to find a resource name by a sequence of characters. Usage: `like(value)` where "value" is a sequence of characters.
**Type**: String |
| `resourceType` | (Optional) A resource type filter. Multiple entries are accepted.
**Type**: String |
| `taskId` | (Optional) A task ID filter. Multiple entries are accepted.
**Type**: Integer |
| `workflowId` | (Optional) A workflow ID filter. Multiple entries are accepted.
**Type**: Integer |
| `parentActivityId` | (Optional) A parent activity ID filter. Multiple entries are accepted.
**Type**: Integer |
| `state` | (Optional) A state filter. Multiple entries are accepted.
**Type**: String
**Allowed values**:
- `enqueued`
- `assigned`
- `started`
- `paused`
- `completed` |
| `resultCode` | (Optional) A code filter. Multiple entries are accepted.
**Type**: String
**Allowed values**:
- `ok`
- `error`
- `warning`
- `cancelled`
- `abandoned`
- `timedout` |
| `createdAt` | (Optional) A time filter. Single entry is accepted.
**Type**: String |
| `startedAt` | (Optional) A time filter. Single entry is accepted.
**Type**: String |
| `updatedAt` | (Optional) A time filter. Single entry is accepted.
**Type**: String |
| `completedAt` | (Optional) A time filter. Single entry is accepted.
**Type**: String |
| `tag` | (Optional) A tag filter. Multiple entries are accepted.
**Type**: String |
| `sustainable` | (Optional) Filter by sustainable activities.
**Type**: Boolean |
| `allow_deleted` | (Optional) If true, allows to work with deleted entities.
**Type**: Boolean |
#### Responses
##### `200`
**Media type**: `application/json`
- `items` — **Type**: Array of Object
**Array type description:**
The activity object.
**Type**: Object
- `cursors` — **Type**: Object
**Example**:
```json
{
"items": [
{
"parentActivityId": 0,
"state": "enqueued",
"taskId": 0,
"context": {},
"result": {
"code": "ok",
"error": {
"domain": "",
"code": "",
"reason": "",
"context": {},
"kbLink": {
"lineTag": "",
"serCode": "",
"version": "",
"build": 0,
"product": "",
"os": ""
},
"debug": {}
},
"warnings": [
{
"domain": "",
"code": "",
"reason": "",
"context": {},
"kbLink": {
"lineTag": "",
"serCode": "",
"version": "",
"build": 0,
"product": "",
"os": ""
},
"debug": {}
}
],
"payload": {}
},
"tenant": {
"id": "",
"uuid": "",
"name": "",
"locator": ""
},
"startedAt": "",
"id": 0,
"createdAt": "",
"startedByUser": "",
"completedAt": "",
"resource": {
"name": "",
"id": "",
"type": ""
},
"tags": [
""
],
"progress": {
"current": 0,
"bytesProcessed": 0,
"processingSpeed": 0,
"leftTime": "",
"bytesSaved": 0,
"bottleneck": {
"source": 0,
"destination": 0,
"processing": 0
},
"total": 0
},
"uuid": "",
"updatedAt": "",
"executor": {
"id": "",
"clusterId": ""
},
"policy": {
"name": "",
"id": "",
"type": ""
},
"workflowId": 0,
"type": ""
}
],
"cursors": {
"after": "",
"before": ""
}
}
```
##### `400` — Bad user input.
**Media type**: `application/json`
- `domain` — Error type or category. Can be ['Licensing','Access'] or name of service (for example 'PolicyManager' or 'VaultManager')
**Type**: String
- `code` — Error id or code, unique in the domain. Same as in 'reason' field
**Type**: String
- `reason` — Obsolete. Error id or code, unique in the domain. Same as in 'code' field
**Type**: String
- `context` — Error context dictionary
**Type**: Object
- `kbLink` — Components for kblink
**Type**: Object
- `debug` — Error debug information (map type)
**Type**: Object
**Example**:
```json
{
"domain": "",
"code": "",
"reason": "",
"context": {},
"kbLink": {
"lineTag": "",
"serCode": "",
"version": "",
"build": 0,
"product": "",
"os": ""
},
"debug": {}
}
```
##### `500` — Server error.
**Media type**: `application/json`
- `domain` — Error type or category. Can be ['Licensing','Access'] or name of service (for example 'PolicyManager' or 'VaultManager')
**Type**: String
- `code` — Error id or code, unique in the domain. Same as in 'reason' field
**Type**: String
- `reason` — Obsolete. Error id or code, unique in the domain. Same as in 'code' field
**Type**: String
- `context` — Error context dictionary
**Type**: Object
- `kbLink` — Components for kblink
**Type**: Object
- `debug` — Error debug information (map type)
**Type**: Object
**Example**:
```json
{
"domain": "",
"code": "",
"reason": "",
"context": {},
"kbLink": {
"lineTag": "",
"serCode": "",
"version": "",
"build": 0,
"product": "",
"os": ""
},
"debug": {}
}
```
### Fetch an activity (GET /activities/{activity-id})
Fetches an activity by provided activity ID.
#### Security
The endpoint supports the following authorization methods: `OAuth 2.0`
For OAuth2 authorization method, one of the following scopes is required by the endpoint:
* `urn:acronis.com::task_manager::admin`
* `urn:acronis.com::task_manager::viewer`
#### Request parameters
##### Query parameters
| Name | Description |
|------|-------------|
| `lod` | (Optional) **Type**: String
**Allowed values**:
- `tiny`
- `short`
- `long`
- `full`
- `debug` |
| `allow_deleted` | (Optional) If true, allows to work with deleted entities.
**Type**: Boolean |
#### Responses
##### `200`
**Media type**: `application/json`
- `parentActivityId` — The ID of the parent activity.
**Type**: Integer
- `state` — An execution state.
**Type**: String
**Allowed values**:
- `enqueued`
- `assigned`
- `started`
- `paused`
- `completed`
- `taskId` — The ID of the task that is related to the activity.
**Type**: Integer
- `context` — Activity context.
**Type**: any
- `result` — An execution result.
**Type**: Object
- `tenant` — A tenant identity.
**Type**: Object
- `startedAt` — Time in RFC3339 format.
**Type**: String
- `id` — Unique numeric identifier for the activity object (server-generated).
**Type**: Integer
- `createdAt` — Time in RFC3339 format.
**Type**: String
- `startedByUser` — The name of the user who created the activity.
**Type**: String
- `completedAt` — Time in RFC3339 format.
**Type**: String
- `resource` — The link to the resource which is related to the activity.
**Type**: Object
- `uuid` — Universally unique identifier for the activity object. If not set, it will be automatically generated by the server.
**Type**: String
**Pattern**: `^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$`
- `progress` — A progress value.
**Type**: Object
- `tags` — A list of user-defined tags.
**Type**: Array of String
**Array type description:**
A string that may contain up to 64 characters.
**Type**: String
- `updatedAt` — Time in RFC3339 format.
**Type**: String
- `executor` — An actor identity.
**Type**: Object
- `policy` — The link to the policy which execution requires to create the activity.
**Type**: Object
- `workflowId` — The ID of the workflow that is related to the activity.
**Type**: Integer
- `type` — The type of the activity that is defined by the user.
**Type**: String
**Example**:
```json
{
"parentActivityId": 0,
"state": "enqueued",
"taskId": 0,
"context": {},
"result": {
"code": "ok",
"error": {
"domain": "",
"code": "",
"reason": "",
"context": {},
"kbLink": {
"lineTag": "",
"serCode": "",
"version": "",
"build": 0,
"product": "",
"os": ""
},
"debug": {}
},
"warnings": [
{
"domain": "",
"code": "",
"reason": "",
"context": {},
"kbLink": {
"lineTag": "",
"serCode": "",
"version": "",
"build": 0,
"product": "",
"os": ""
},
"debug": {}
}
],
"payload": {}
},
"tenant": {
"id": "",
"uuid": "",
"name": "",
"locator": ""
},
"startedAt": "",
"id": 0,
"createdAt": "",
"startedByUser": "",
"completedAt": "",
"resource": {
"name": "",
"id": "",
"type": ""
},
"uuid": "",
"progress": {
"current": 0,
"bytesProcessed": 0,
"processingSpeed": 0,
"leftTime": "",
"bytesSaved": 0,
"bottleneck": {
"source": 0,
"destination": 0,
"processing": 0
},
"total": 0
},
"tags": [
""
],
"updatedAt": "",
"executor": {
"id": "",
"clusterId": ""
},
"policy": {
"name": "",
"id": "",
"type": ""
},
"workflowId": 0,
"type": ""
}
```
##### `404` — The activity does not exist.
**Media type**: `application/json`
- `domain` — Error type or category. Can be ['Licensing','Access'] or name of service (for example 'PolicyManager' or 'VaultManager')
**Type**: String
- `code` — Error id or code, unique in the domain. Same as in 'reason' field
**Type**: String
- `reason` — Obsolete. Error id or code, unique in the domain. Same as in 'code' field
**Type**: String
- `context` — Error context dictionary
**Type**: Object
- `kbLink` — Components for kblink
**Type**: Object
- `debug` — Error debug information (map type)
**Type**: Object
**Example**:
```json
{
"domain": "",
"code": "",
"reason": "",
"context": {},
"kbLink": {
"lineTag": "",
"serCode": "",
"version": "",
"build": 0,
"product": "",
"os": ""
},
"debug": {}
}
```
##### `400` — Bad user input.
**Media type**: `application/json`
- `domain` — Error type or category. Can be ['Licensing','Access'] or name of service (for example 'PolicyManager' or 'VaultManager')
**Type**: String
- `code` — Error id or code, unique in the domain. Same as in 'reason' field
**Type**: String
- `reason` — Obsolete. Error id or code, unique in the domain. Same as in 'code' field
**Type**: String
- `context` — Error context dictionary
**Type**: Object
- `kbLink` — Components for kblink
**Type**: Object
- `debug` — Error debug information (map type)
**Type**: Object
**Example**:
```json
{
"domain": "",
"code": "",
"reason": "",
"context": {},
"kbLink": {
"lineTag": "",
"serCode": "",
"version": "",
"build": 0,
"product": "",
"os": ""
},
"debug": {}
}
```
##### `500` — Server error.
**Media type**: `application/json`
- `domain` — Error type or category. Can be ['Licensing','Access'] or name of service (for example 'PolicyManager' or 'VaultManager')
**Type**: String
- `code` — Error id or code, unique in the domain. Same as in 'reason' field
**Type**: String
- `reason` — Obsolete. Error id or code, unique in the domain. Same as in 'code' field
**Type**: String
- `context` — Error context dictionary
**Type**: Object
- `kbLink` — Components for kblink
**Type**: Object
- `debug` — Error debug information (map type)
**Type**: Object
**Example**:
```json
{
"domain": "",
"code": "",
"reason": "",
"context": {},
"kbLink": {
"lineTag": "",
"serCode": "",
"version": "",
"build": 0,
"product": "",
"os": ""
},
"debug": {}
}
```