# Resource and Policy Management API
**Base URL**: https://dev-cloud.acronis.com/api
## Endpoints
### GET /policy_management/v4/policies
#### 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::policy_management::read`
#### Request parameters
##### Query parameters
| Name | Description |
|------|-------------|
| `tenant_id` | (Optional) Filter by one or more tenant IDs or UUIDs. Maximum 100 items.
**Type**: String |
| `types` | (Optional) Filter by one or more policy types. Items are of type `PolicyType`. Maximum 10 items.
**Type**: String |
| `enabled` | (Optional) Filter only enabled or disabled policies.
**Type**: Boolean |
| `policy_id` | (Optional) Filter by one or more policy IDs. Maximum 100 items.
**Type**: String |
| `policy_selection_id` | (Optional) Fetch all policies that are in the policy selection.
**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}$` |
| `parent_ids` | (Optional) Filter by one or more parent IDs. Maximum 100 items. If this filter is set, policies with matching 'parent policies' will be returned. If this filter is used but no actual values are provided in the query (e.g. `parent_ids=`), only 'root policies' (with empty 'parent policies') will be returned.
**Type**: String |
| `search` | (Optional) Search for policies by name, type and tags using an SQL-like syntax.
**Type**: String |
| `applicable_to_context_id` | (Optional) Fetch all policies that are applicable to the resources with the given IDs. Maximum 100. Mutually exclusive with the `include_applied_context` filter.
**Type**: String |
| `applicable_to_context_selection_id` | (Optional) Fetch all policies that are applicable to the resources in the context selection. Mutually exclusive with the `include_applied_context` filter. If at least one sub-policy except the root policy is applicable, the overall composite policy is applicable
**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}$` |
| `dependency_namespace` | (Optional) Fetch all policies by dependency domain or namespace
**Type**: String |
| `dependency_path` | (Optional) Fetch all policies by dependency identifier. Must be set if `dependency_namespace` is set
**Type**: String |
| `os_type` | (Optional) Fetch all policies that would be applicable to a resource with the given os type. Mutually exclusive with the `applicable_to_context_id` and `applicable_to_context_selection_id` filters.
**Type**: String
**Allowed values**:
- `Windows9x`
- `Windows`
- `MacOSX`
- `Linux` |
| `include_settings` | (Optional) Include policy settings.
**Type**: Boolean |
| `include_settings_constraints` | (Optional) Include settings constraints. Settings constraints will not be included if `include_settings` is not `true`. By default, `include_settings_constraints` is considered `true` when `include_settings` is `true`.
**Type**: Boolean |
| `include_applied_context` | (Optional) Include the context that the policies are applied to. Populates the `context` field of the `BoundCompositePolicy` objects. Mutually exclusive with `applicable_to_context_id` and `applicable_to_context_selection_id` filters.
**Type**: Boolean |
| `templates_only` | (Optional) Filter out non-template policies.
**Type**: Boolean |
| `include_templates` | (Optional) Include template policies.
**Type**: Boolean |
| `include_temporaries` | (Optional) Include temporary policies.
**Type**: Boolean |
| `favorite` | (Optional) Show only the favorite policies
**Type**: Boolean |
| `default` | (Optional) Show only the default policy
**Type**: Boolean |
| `limit` | (Optional) Number of element in the page.
**Type**: Integer |
| `before` | (Optional) Cursor before the current page.
**Type**: String |
| `after` | (Optional) Cursor after the current page.
**Type**: String |
#### Responses
| Code | Description |
|------|-------------|
| `200` | - |
| `400` | - |
| `401` | - |
| `403` | - |
| `500` | - |
### POST /policy_management/v4/policies
Creates a policy.
#### 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::policy_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `subject` | **Type**: Object |
| `ignore_policy_and_tenant_ids` | Use the exported policy for import as a new one (in the same or different tenant)
immediately, without any additional processing by the client.
If true, then client-generated policy IDs will be ignored and will be generated by a server.
Policy tenant IDs will be ignored as well and set to a tenant defined by the `override_tenant_id`
parameter or deduced according to the `ScopedByContextTenant` trait.
If false, then:
1. Provided client-generated IDs should be globally unique and will be used as policy IDs to create
or update;
1. If root policy with provided client-generated ID already exists, then all other policies within
the requested composite should exist as well and upsert semantics will be used for all policies;
1. If root policy with provided client-generated ID already exists but belongs to a tenant different
from the one defined by `override_tenant_id` parameter or deduced according to the `ScopedByContextTenant`
trait, then request will fail with `AccessDeniedError` (policy movement between tenants is not supported).
Useful in import-after-export case.
**Type**: Boolean |
| `override_tenant_id` | Enable import into tenant different from the one used for export. Useful in import-after-export case.
**Type**: String |
| `ensure_applications` | Create and revoke applications for the processed policy according to a given context.
**Type**: Boolean
**Default**: true |
| `disable_applications_on_conflict` | On update of the existing policy, automatically switch `application.enabled` to false in case of application conflict conditions (which otherwise fail the request).
**Type**: Boolean |
| `os_type` | Save only the policies that would be supported for a resource with the given os type. All unsupported policies are removed from the composite policy instead of just being disabled.
**Type**: String
**Allowed values**:
- `Windows9x`
- `Windows`
- `MacOSX`
- `Linux` |
**Example**:
```json
{
"subject": {
"policy": [
{
"settings": {},
"favorite_order": 0,
"enabled": true,
"comment": "",
"origin": "upstream",
"default_name_template_id": "",
"_issues": [
{
"link": "policy_view",
"severity": "ok",
"error": {
"context": {},
"code": "",
"domain": "",
"message": ""
}
}
],
"template": true,
"temporary": true,
"created_at": "1970-01-01T00:00:00.000Z",
"external_dependencies": [
{
"namespace": "",
"tenant_id": "123",
"path": "",
"timestamp": "1970-01-01T00:00:00.000Z",
"role": ""
}
],
"name": "",
"parent_ids": [
"cc3AF70E-ACAF-eC74-d9Fa-C97d9B7d6cFC"
],
"min_required_access_rules": [
{
"link": "policy_view",
"namespace": "",
"role": ""
}
],
"updated_at": "1970-01-01T00:00:00.000Z",
"id": "92f3cbf4-3811-7996-e2DD-Dc72F23FA3d0",
"favorite": true,
"run_args": [
""
],
"settings_constraints": {},
"ls_features": "hi1IyySG_604RPm_vP_oezlqnF6nMNUQVb8WJmpOyHlHCevvc3XvHlJEpSaBgEm",
"tags": [
{
"key": "",
"value": ""
}
],
"default": true,
"settings_schema": "376740256.584834280498018403835445189427897285246541353603250224659488851",
"template_source_id": "2e2Fe89c-4e80-1B8c-5a7d-FF86257d13Ac",
"deleted_at": "1970-01-01T00:00:00.000Z",
"ttl": 0,
"_links": [
{
"rel": "policy_view",
"href": ""
}
],
"type": "",
"tenant_id": "",
"_link_ids": [
"policy_view"
],
"validation_dependencies": [
"Cb80c354-5d4B-9EE2-CCDc-eDBc82DeB0ED"
]
}
],
"context": {
"_issues": [
{
"link": "policy_view",
"severity": "ok",
"error": {
"context": {},
"code": "",
"domain": "",
"message": ""
}
}
],
"id": "897ABdEc-43ef-f535-AcCf-bC9A15dfE3f8",
"_links": [
{
"rel": "policy_view",
"href": ""
}
],
"_link_ids": [
"policy_view"
],
"items": [
"D84E2316-11c6-050f-6176-0c0Bf4eFC727"
],
"tenant_id": ""
}
},
"ignore_policy_and_tenant_ids": true,
"override_tenant_id": "",
"ensure_applications": true,
"disable_applications_on_conflict": true,
"os_type": "Windows9x"
}
```
#### Responses
| Code | Description |
|------|-------------|
| `200` | The policy creation or update was successful. If there are warning issues, they will be included in the response. If there are critical or error issues, the server response will contain error code `422`. See the description of the response with code `422`. |
| `422` | Critical or error issues (link='') blocked the policy creation or update. |
| `400` | Malformed request errors. |
| `401` | - |
| `403` | - |
| `409` | - |
| `500` | - |
### DELETE /policy_management/v4/policies
#### 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::policy_manager::admin`
#### Request parameters
##### Query parameters
| Name | Description |
|------|-------------|
| `tenant_id` | (Optional) Filter by one or more tenant IDs or UUIDs. Maximum 100 items.
**Type**: String |
| `policy_id` | (Optional) Filter by one or more policy IDs. Maximum 100 items.
**Type**: String |
| `policy_selection_id` | (Optional) Filter by policies that are in the policy selection.
**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}$` |
#### Responses
| Code | Description |
|------|-------------|
| `204` | - |
| `422` | Critical or error issues (link='') blocked the policy deletion |
| `400` | - |
| `401` | - |
| `403` | - |
| `500` | - |
### PATCH /policy_management/v4/policies/favorite
#### 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::policy_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `default` | Contains an array of policy ids, their favorite order and properties. Used to update the favorite order in bulk.
**Type**: Array of Object
**Array type description:**
**Type**: Object |
**Example**:
```json
[
{
"id": "",
"favorite": true,
"favorite_order": 0
}
]
```
#### Responses
| Code | Description |
|------|-------------|
| `204` | - |
| `400` | - |
| `401` | - |
| `403` | - |
| `500` | - |
### GET /policy_management/v4/policies/{policy_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::policy_management::read`
#### Request parameters
##### Query parameters
| Name | Description |
|------|-------------|
| `full_composite` | (Optional) If `{policy_id}` is a composite policy root, then all composite policies will be returned. If `{policy_id}` is a non-root policy - just one corresponding policy object will be returned.
**Type**: Boolean |
| `include_settings` | (Optional) Include policy settings.
**Type**: Boolean |
| `include_applied_context` | (Optional) Include the context that the policy is applied to. Populates the `context` field of the `BoundCompositePolicy` object.
**Type**: Boolean |
| `links_and_issues` | (Optional) Request to calculate and return links and / or constraints on them. If `embed_brief` is requested - only non-constrained ('available') links should be returned (in `LinksAndIssues._linkIDs` array). If `embed_detailed` is requested - both links (non-constrained and constrained) and their constraint descriptions should be returned (in `LinksAndIssues._links` and `LinksAndIssues._issues` arrays).
**Type**: String
**Allowed values**:
- `embed_brief`
- `embed_detailed` |
#### Responses
| Code | Description |
|------|-------------|
| `200` | - |
| `404` | - |
| `401` | - |
| `403` | - |
| `500` | - |
### PATCH /policy_management/v4/policies/{policy_id}
Updates a policy.
#### 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::policy_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `subject` | **Type**: Object |
| `ensure_applications` | Create and revoke applications for the processed policy according to a given context.
**Type**: Boolean
**Default**: true |
| `disable_applications_on_conflict` | Automatically switch `application.enabled` to false in case of application conflict conditions (which otherwise fail the request).
**Type**: Boolean |
| `skip_ensure_total_protect` | Skips the process of ensuring it is a Total Protect Policy
**Type**: Boolean
**Default**: false |
| `default` | Set/Unset the policy as default
**Type**: Boolean |
| `favorite` | Set/Unset the policy as favorite
**Type**: Boolean |
**Example**:
```json
{
"subject": {
"policy": [
{
"settings": {},
"favorite_order": 0,
"enabled": true,
"comment": "",
"origin": "upstream",
"default_name_template_id": "",
"_issues": [
{
"link": "policy_view",
"severity": "ok",
"error": {
"context": {},
"code": "",
"domain": "",
"message": ""
}
}
],
"template": true,
"temporary": true,
"created_at": "1970-01-01T00:00:00.000Z",
"external_dependencies": [
{
"namespace": "",
"tenant_id": "123",
"path": "",
"timestamp": "1970-01-01T00:00:00.000Z",
"role": ""
}
],
"name": "",
"parent_ids": [
"d5fE1Faa-Ff67-e72f-12B5-9A5263B2EeA5"
],
"min_required_access_rules": [
{
"link": "policy_view",
"namespace": "",
"role": ""
}
],
"updated_at": "1970-01-01T00:00:00.000Z",
"id": "6ef13B4F-EDB6-66Cf-6CA2-3DAc23A5DF4c",
"favorite": true,
"run_args": [
""
],
"settings_constraints": {},
"ls_features": "Dy3YzKP0Cv_K4XzicNES5R0dHhlIjkptkTNDw4sBKY1KYc84EOAkOuFHjNR9BOHlvkl7UBrchP_69CbVjC2p55cpZzfxkOGVZwcl|",
"tags": [
{
"key": "",
"value": ""
}
],
"default": true,
"settings_schema": "013985317795328252227128734377334375020904946939509013084860.8078137975178704398",
"template_source_id": "84C01343-6Ee4-7cbe-4aaB-CcDbD3FBDa28",
"deleted_at": "1970-01-01T00:00:00.000Z",
"ttl": 0,
"_links": [
{
"rel": "policy_view",
"href": ""
}
],
"type": "",
"tenant_id": "",
"_link_ids": [
"policy_view"
],
"validation_dependencies": [
"AB775dBb-E563-C1DA-8FBA-Eba5Cb8BBEAa"
]
}
],
"context": {
"_issues": [
{
"link": "policy_view",
"severity": "ok",
"error": {
"context": {},
"code": "",
"domain": "",
"message": ""
}
}
],
"id": "BEe2c373-95ce-a49E-F2FE-5952378b12bF",
"_links": [
{
"rel": "policy_view",
"href": ""
}
],
"_link_ids": [
"policy_view"
],
"items": [
"B81fe7aF-EFAC-Be1d-7Ca0-47Ae898F4BA7"
],
"tenant_id": ""
}
},
"ensure_applications": true,
"disable_applications_on_conflict": true,
"skip_ensure_total_protect": false,
"default": true,
"favorite": true
}
```
#### Responses
| Code | Description |
|------|-------------|
| `204` | The patch was successfully applied to the policy without any issues. |
| `200` | The patch was applied to the policy with warning issues. |
| `422` | Critical or error issues (link='') blocked the patch. |
| `400` | Malformed request errors. |
| `404` | - |
| `401` | - |
| `403` | - |
| `409` | - |
| `500` | - |
### POST /policy_management/v4/drafts
#### 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::policy_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `new` | **Type**: Object |
| `edit` | **Type**: Object |
**Example**:
```json
{
"new": {
"policy": [
{
"type": "policy.monitoring.root",
"enabled": true,
"origin": "upstream",
"settings": {
"root_category": "custom",
"sub_policy_categories": [
"hardware",
"system"
]
}
}
]
}
}
```
#### Responses
| Code | Description |
|------|-------------|
| `200` | The draft was successfully created, possibly having non-critical issues. Critical issues will cause 422, see below |
| `422` | Critical issues (link='') blocked the draft creation |
| `400` | Malformed-request-like errors |
| `401` | - |
| `403` | - |
| `500` | - |
### PUT /policy_management/v4/drafts/{draft_id}/state
Commit or cancel draft
#### 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::policy_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `value` | **Type**: String
**Allowed values**:
- `creating`
- `editing`
- `cancelled`
- `done` |
| `accepted_default_name` | Non-empty if the user accepted the default generated name (i.e. did not change it explicitly)
**Type**: String |
| `disable_applications_on_conflict` | On draft commit, automatically switch application.enabled to 'false' in case of application conflict conditions (which otherwise block the draft commit). This flag affects all draft context resources causing application conflict, and is a more convenient and automatic way to get conflicting applications disabled instead of using /disabled_applications_context
**Type**: Boolean |
| `create_new_policy_and_move_context` | Non-empty in edit case only and contains either explicit or anonymous selection of resources. The original policy settings will not be changed by draft on commit, the resources will be revoked from the original policy, a new policy will be created by draft policy settings and the resources will be applied to the new
**Type**: Object |
| `new_policy_name` | Non-empty in case of non-empty 'createNewPolicyAndMoveContext' and defines a created new policy name
**Type**: String |
| `save_as_template` | Save the policy as a template
**Type**: Boolean |
| `save_as_temporary` | Automatically policy deletion after seconds from 'ttl' been expired. This field no make sense if 'ttl' was not set
**Type**: Boolean |
| `ttl` | Time in seconds to keep temporary policy
**Type**: Integer |
**Example**:
```json
{
"value": "creating",
"accepted_default_name": "",
"disable_applications_on_conflict": true,
"create_new_policy_and_move_context": {
"_issues": [
{
"link": "policy_view",
"severity": "ok",
"error": {
"context": {},
"code": "",
"domain": "",
"message": ""
}
}
],
"id": "8a17Fe3D-7B3D-75Ed-134F-E1EC4c7cf5D5",
"_links": [
{
"rel": "policy_view",
"href": ""
}
],
"_link_ids": [
"policy_view"
],
"items": [
"E9FEbDA1-9EEb-99DA-92CF-f165f4746Af4"
],
"tenant_id": ""
},
"new_policy_name": "",
"save_as_template": true,
"save_as_temporary": true,
"ttl": 0
}
```
#### Responses
| Code | Description |
|------|-------------|
| `204` | The draft was successfully committed or cancelled |
| `200` | The draft was successfully committed, but with warning severity issues |
| `400` | Malformed-request-like errors |
| `401` | - |
| `403` | - |
| `404` | - |
| `422` | Critical or error issues (link='') blocked the draft commit |
| `500` | - |
### PUT /policy_management/v4/drafts/{draft_id}/name
#### 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::policy_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `value` | **Type**: String |
**Example**:
```json
{
"value": ""
}
```
#### Responses
| Code | Description |
|------|-------------|
| `200` | The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below |
| `422` | Critical issues (link='') blocked the draft update |
| `400` | Malformed-request-like errors |
| `404` | - |
| `401` | - |
| `403` | - |
| `500` | - |
### PUT /policy_management/v4/drafts/{draft_id}/context
#### 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::policy_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `value` | Either explicit or anonymous selection of resources. Changing context may affect any policy within the policy composite. Thus full draft is returned on context change
**Type**: Object |
**Example**:
```json
{
"value": {
"_issues": [
{
"link": "policy_view",
"severity": "ok",
"error": {
"context": {},
"code": "",
"domain": "",
"message": ""
}
}
],
"id": "4cEaa682-3253-3d04-5cEb-e0a9aE5253E7",
"_links": [
{
"rel": "policy_view",
"href": ""
}
],
"_link_ids": [
"policy_view"
],
"items": [
"BFf2D1Ae-ab51-0ADc-2FdA-ebd61fB022fA"
],
"tenant_id": ""
}
}
```
#### Responses
| Code | Description |
|------|-------------|
| `200` | The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below |
| `422` | Critical issues (link='') blocked the draft update |
| `400` | Malformed-request-like errors |
| `404` | - |
| `401` | - |
| `403` | - |
| `500` | - |
### PUT /policy_management/v4/drafts/{draft_id}/enabled_policies
#### 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::policy_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `items` | **Type**: Array of Object
**Array type description:**
**Type**: Object |
**Example**:
```json
{
"items": [
{
"id": "bB0Cbedb-7Ed5-0dB4-c130-36A6AB7A3568",
"value": true
}
]
}
```
#### Responses
| Code | Description |
|------|-------------|
| `200` | The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below |
| `422` | Critical issues (link='') blocked the draft update |
| `400` | Malformed-request-like errors |
| `404` | - |
| `401` | - |
| `403` | - |
| `409` | - |
| `500` | - |
### PUT /policy_management/v4/drafts/{draft_id}/disabled_applications_context
#### 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::policy_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `value` | **Type**: Array of String
**Array type description:**
Service-wide unique object ID generated server-side.
**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}$` |
**Example**:
```json
{
"value": [
"8F9eF0a0-17F0-4b43-13CA-86CDFF5d4e1d"
]
}
```
#### Responses
| Code | Description |
|------|-------------|
| `200` | The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below |
| `422` | Critical issues (link='') blocked the draft update |
| `400` | Malformed-request-like errors |
| `404` | - |
| `401` | - |
| `403` | - |
| `500` | - |
### POST /policy_management/v4/drafts/{draft_id}/policies
Dynamically add / delete policy to / from the policy draft composite or update of a specific policy within the policy draft composite. Each operation may affect any linked (downstream) policies within the composite - thus full draft is returned
#### 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::policy_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `settings` | **Type**: Union
**May be any of**:
1. **Type**: Object
2. **Type**: String
3. **Type**: Integer
4. **Type**: Boolean |
| `favorite_order` | The order number of the policy.
**Type**: Integer |
| `enabled` | **Type**: Boolean |
| `comment` | **Type**: String |
| `origin` | Object creation origin, also called 'authoritative source'.
**Type**: String
**Allowed values**:
- `upstream`
- `local` |
| `default_name_template_id` | Policy name template to be used when actual `name` is not user-assigned, e.g., for template policies.
**Type**: String |
| `_issues` | **Type**: Array of Object
**Array type description:**
**Type**: Object |
| `template` | A `template` policy can't be applied and is used as a prototype for initialization of another policy of the same type.
**Type**: Boolean |
| `temporary` | A `temporary` policy lives no more than `ttl` period, after that is removed automatically.
**Type**: Boolean |
| `created_at` | **Type**: DateTime |
| `external_dependencies` | References to dependencies. Represents objects in domains external to policy, which policy refers to, and access to whom needs to be adjusted on policy change. Should be filled upon policy validation at the first. validation stage
**Type**: Array of Object
**Array type description:**
**Type**: Object |
| `name` | Is usually actual only for composite policy root.
**Type**: String |
| `parent_ids` | References to parent policies (which this policy is linked to).
**Type**: Array of String
**Array type description:**
Service-wide unique object ID generated server-side.
**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}$` |
| `min_required_access_rules` | Minimal access rules required to access the policy and overriding default access rules. Calculated from `settings` including their external. dependencies
**Type**: Array of Object
**Array type description:**
**Type**: Object |
| `updated_at` | **Type**: DateTime |
| `id` | Service-wide unique object ID generated server-side.
**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}$` |
| `favorite` | True if the policy is favorite
**Type**: Boolean |
| `run_args` | Arguments available for `PUT /applications/run`.
**Type**: Array of String
**Array type description:**
**Type**: String |
| `settings_constraints` | Any constraint rules which applied to current policy settings - available enumerator values, numeric value ranges, string value patterns, etc.
**Type**: Union
**May be any of**:
1. **Type**: Object
2. **Type**: String
3. **Type**: Integer
4. **Type**: Boolean |
| `ls_features` | Licensing features calculated from `settings`. Empty when `enabled` is false.
**Type**: String
**Pattern**: `^(\w+)\|?$` |
| `tags` | **Type**: Array of Object
**Array type description:**
Key-value pair to use for object search and sorting.
**Type**: Object |
| `default` | True if the policy is default
**Type**: Boolean |
| `settings_schema` | Schema version.
**Type**: String
**Pattern**: `^([0-9]+)\.([0-9]+)$` |
| `template_source_id` | Reference to the `template` policy, that was used as a prototype for initialization of this policy.
**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}$` |
| `deleted_at` | **Type**: DateTime |
| `ttl` | Lifetime of the `temporary` policy, in seconds. Non-zero if set
**Type**: Integer |
| `_links` | **Type**: Array of Object
**Array type description:**
**Type**: Object |
| `type` | A policy type in the `type.scope` format, where `type` is 'policy' and `scope` is
like one of the `PolicyScope` values defined in `impl/policy/type_scopes.raml`.
**Type**: String |
| `tenant_id` | **Type**: String |
| `_link_ids` | **Type**: Array of String
**Array type description:**
**Type**: String
**Allowed values**:
- `policy_view`
- `policy_create`
- `policy_delete`
- `policy_update`
- `policy_enable`
- `policy_disable`
- `policy_add_child`
- `policy_remove_child`
- `policy_run`
- `policy_stop`
- `policy_apply`
- `policy_revoke`
- `policy_resume`
- `policy_pause`
- `policy_status`
- `backup`
- `restore`
- `getActivities`
- `largeScaleRecovery`
- `renameBackupPlans`
- `editBackupPlans`
- `collectSysinfo`
- `browse`
- `manageAsrm`
- `manageAsz`
- `activeProtection`
- `addToGroup`
- `removeFromGroup`
- `renameVMReplicationPlans`
- `editVMReplicationPlans`
- `startReplicaTest`
- `stopReplicaTest`
- `failover`
- `stopFailover`
- `failback`
- `finalize`
- `unmount`
- `detectApplications`
- `rebind`
- `permanentFailover`
- `remove`
- `replicate`
- `delete`
- `rename`
- `addResources`
- `removeResources`
- `move`
- `addStaticSubGroup`
- `addDynamicSubGroup`
- `editCondition`
- `changeCredentials`
- `changeMsSqlCredentials`
- `editCasSettings`
- `deleteCasSettings`
- `changeMsExchangeDbCredentials`
- `changeOffice365Credentials`
- `comment`
- `hostBackup`
- `removeAppliances`
- `select_disk_provision_mode`
- `reboot`
- `shutdown`
- `canDisasterRecovery`
- `manageLicense`
- `patchManagement`
- `remoteDesktop`
- `remoteWipe`
- `cyberDesktop` |
| `validation_dependencies` | References to dependencies. Only sub-policy IDs of same composite are expected (otherwise the ID will be ignored). Should be filled upon policy validation at the first validation stage with `check_validation_dependencies`. set to `false`
**Type**: Array of String
**Array type description:**
Service-wide unique object ID generated server-side.
**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}$` |
**Example**:
```json
{
"settings": {},
"favorite_order": 0,
"enabled": true,
"comment": "",
"origin": "upstream",
"default_name_template_id": "",
"_issues": [
{
"link": "policy_view",
"severity": "ok",
"error": {
"context": {},
"code": "",
"domain": "",
"message": ""
}
}
],
"template": true,
"temporary": true,
"created_at": "1970-01-01T00:00:00.000Z",
"external_dependencies": [
{
"namespace": "",
"tenant_id": "123",
"path": "",
"timestamp": "1970-01-01T00:00:00.000Z",
"role": ""
}
],
"name": "",
"parent_ids": [
"FD4e9D36-D2D2-CaEC-aafd-d278fFEc8c87"
],
"min_required_access_rules": [
{
"link": "policy_view",
"namespace": "",
"role": ""
}
],
"updated_at": "1970-01-01T00:00:00.000Z",
"id": "93Ab4DcA-Fc8f-4929-AeeE-1bE1a155eeDA",
"favorite": true,
"run_args": [
""
],
"settings_constraints": {},
"ls_features": "KnClCWya447LbRVYP8POE50bFoZ5tfaGvijSHzbw7e57LR7ROYAeN8",
"tags": [
{
"key": "",
"value": ""
}
],
"default": true,
"settings_schema": "744889153763046291203324263054871498681739726035065230679850081123110795177122015.813808908542397266964546652435589816983621575981019024028",
"template_source_id": "CbAd9b2E-0Dd5-AcaA-BE6d-adb0DDAC64c3",
"deleted_at": "1970-01-01T00:00:00.000Z",
"ttl": 0,
"_links": [
{
"rel": "policy_view",
"href": ""
}
],
"type": "",
"tenant_id": "",
"_link_ids": [
"policy_view"
],
"validation_dependencies": [
"439BF6A0-9C7b-efCE-70C7-c82e73EeB225"
]
}
```
#### Responses
| Code | Description |
|------|-------------|
| `200` | The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below |
| `422` | Critical issues (link='') blocked the draft update |
| `400` | Malformed-request-like errors |
| `404` | - |
| `401` | - |
| `403` | - |
| `409` | - |
| `500` | - |
### PUT /policy_management/v4/drafts/{draft_id}/policies/{policy_id}/enabled
#### 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::policy_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `value` | **Type**: Boolean |
**Example**:
```json
{
"value": true
}
```
#### Responses
| Code | Description |
|------|-------------|
| `200` | The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below |
| `422` | Critical issues (link='') blocked the draft update |
| `400` | Malformed-request-like errors |
| `404` | - |
| `401` | - |
| `403` | - |
| `409` | - |
| `500` | - |
### PUT /policy_management/v4/drafts/{draft_id}/policies/{policy_id}/name
Changes the {policy_id} name.
#### 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::policy_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `value` | **Type**: String |
**Example**:
```json
{
"value": ""
}
```
#### Responses
| Code | Description |
|------|-------------|
| `200` | The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below |
| `422` | Critical issues (link='') blocked the draft update |
| `400` | Malformed-request-like errors |
| `404` | - |
| `401` | - |
| `403` | - |
| `500` | - |
### PUT /policy_management/v4/drafts/{draft_id}/policies/{policy_id}/type
#### 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::policy_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `value` | **Type**: String |
**Example**:
```json
{
"value": ""
}
```
#### Responses
| Code | Description |
|------|-------------|
| `200` | The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below |
| `422` | Critical issues (link='') blocked the draft update |
| `400` | Malformed-request-like errors |
| `404` | - |
| `401` | - |
| `403` | - |
| `409` | - |
| `500` | - |
### PUT /policy_management/v4/drafts/{draft_id}/policies/{policy_id}/comment
#### 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::policy_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `value` | **Type**: String |
**Example**:
```json
{
"value": ""
}
```
#### Responses
| Code | Description |
|------|-------------|
| `200` | The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below |
| `422` | Critical issues (link='') blocked the draft update |
| `400` | Malformed-request-like errors |
| `404` | - |
| `401` | - |
| `403` | - |
| `409` | - |
| `500` | - |
### PUT /policy_management/v4/drafts/{draft_id}/policies/{policy_id}/settings
#### 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::policy_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `patch` | Update settings, possibly providing a partial set of fields. Value replace or add field semantics is assumed; no remove field semantics; if a field is of array type, its patch format may also follow ArrayPatch type
**Type**: Union
**May be any of**:
1. **Type**: Object
2. **Type**: String
3. **Type**: Integer
4. **Type**: Boolean |
**Example**:
```json
{
"patch": {}
}
```
#### Responses
| Code | Description |
|------|-------------|
| `200` | The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below |
| `422` | Critical issues (link='') blocked the draft update |
| `400` | Malformed-request-like errors |
| `404` | - |
| `401` | - |
| `403` | - |
| `409` | - |
| `500` | - |
### POST /policy_management/v4/applications
#### 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::policy_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `policy_id` | An ID of a root policy of a `CompositePolicy` type. If root policy is a template, a copy of this policy will be created and `context` will be applied to the copied policy.
**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}$` |
| `context` | Either explicit or anonymous selection of resources. Context selection items are applied in single transaction after validation. A separate application is created for each context selection item. For policy that does not require context, application does not require the context as well.
**Type**: Object |
| `disable_on_conflict` | Automatically switch `application.enabled` to false in case of application conflict conditions.
**Type**: Boolean |
| `accepted_default_name` | The parameter sets the name of the copied policy. Required if provided root policy is a template.
**Type**: String |
| `precheck_disabled` | Skip precheck of issues before creation of applications, allowing applying of partially compatible composite policies. The default value is true.
**Type**: Boolean |
**Example**:
```json
{
"policy_id": "De87CCbc-3f2e-8E11-6e2B-5cF3889E5BbE",
"context": {
"_issues": [
{
"link": "policy_view",
"severity": "ok",
"error": {
"context": {},
"code": "",
"domain": "",
"message": ""
}
}
],
"id": "D454ce4D-C77e-ACfD-BC09-cefBB13600eE",
"_links": [
{
"rel": "policy_view",
"href": ""
}
],
"_link_ids": [
"policy_view"
],
"items": [
"36Bb3ad0-812a-9Cd4-6cBb-Bde10B2E7Ad4"
],
"tenant_id": ""
},
"disable_on_conflict": true,
"accepted_default_name": "",
"precheck_disabled": true
}
```
#### Responses
| Code | Description |
|------|-------------|
| `204` | The policy application was successfully created without any issues. |
| `200` | The policy application was created with warning issues. |
| `422` | Critical or error issues (link='') blocked the policy application. |
| `400` | Malformed request errors. |
| `401` | - |
| `403` | - |
| `409` | - |
| `500` | - |
### GET /policy_management/v4/applications
Fetches a list of applications depending on provided filtering parameters.
#### 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::policy_management::read`
#### Request parameters
##### Query parameters
| Name | Description |
|------|-------------|
| `tenant_id` | (Optional) Filter by one or more tenant IDs or UUIDs. Maximum 100 items.
**Type**: String |
| `agent_id` | (Optional) Filter by one or more agent IDs. Maximum 100 items.
**Type**: String |
| `context_id` | (Optional) Filter by one or more context IDs. Maximum 100 items.
**Type**: String |
| `context_selection_id` | (Optional) Fetch all applications applied to the resources in the context selection.
**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}$` |
| `policy_id` | (Optional) Filter by one or more policy IDs. Maximum 100 items.
**Type**: String |
| `policy_selection_id` | (Optional) Fetch all applications of the policies in the policy selection.
**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}$` |
| `policy_type` | (Optional) Filter by one or more policy types. Items are of type `PolicyType`. Maximum 10 items.
**Type**: String |
| `include_temporaries` | (Optional) Include applications of temporary policies.
**Type**: Boolean |
| `context_type` | (Optional) Filter by one or more resource types. Items are of type `ResourceType`. Maximum 10 items.
**Type**: String |
| `deployment_state` | (Optional) Filter by one or more deployment states. Items are of type `DeploymentState`. Maximum 10 items.
**Type**: String |
| `execution_state` | (Optional) Filter by one or more execution states. Items are of type `RunningState`. Maximum 10 items.
**Type**: String |
| `status` | (Optional) Filter by one or more statuses. Items are of type `ExecutionStatus`. Maximum 10 items.
**Type**: String |
| `issue_types` | (Optional) Filter by one or more issue types. Items are of type `IssueType`. Maximum 10 items.
**Type**: String |
| `enabled_only` | (Optional) Only return applications that are enabled.
**Type**: Boolean |
| `direct_only` | (Optional) For policy assuming application in resources context, return only direct applications of policy to resources, i.e., having only `context.id` in the `origin_contexts` array. For policy assuming application without context, the application is considered as direct.
**Type**: Boolean |
| `empty_link_only` | (Optional) Return only applications that have at least one issue with empty `link`.
**Type**: Boolean |
| `include_multiple_applications_conflict` | (Optional) Include the `multiple_applications_conflict` field in application's `ApplicationStatus`.
**Type**: Boolean |
| `include_validation_issues` | (Optional) Include the `validation_issues` field in application's `ApplicationStatus`.
**Type**: Boolean |
| `include_deployment_errors` | (Optional) Include the `deployment_errors` field in application's `DeploymentStatus`.
**Type**: Boolean |
| `include_running_blockers` | (Optional) Include the `running_blockers` field in application's `RunningStatus`.
**Type**: Boolean |
| `include_status_events` | (Optional) Include the `status_events` field in application's `ApplicationStatus`.
**Type**: Boolean |
| `include_deleted` | (Optional) Include deleted applications.
**Type**: Boolean |
| `links_and_issues` | (Optional) Request to calculate and return links and / or constraints on them. If `embed_brief` is requested - only non-constrained ('available') links should be returned (in `LinksAndIssues._linkIDs` array). If `embed_detailed` is requested - both links (non-constrained and constrained) and their constraint descriptions should be returned (in `LinksAndIssues._links` and `LinksAndIssues._issues` arrays).
**Type**: String
**Allowed values**:
- `embed_brief`
- `embed_detailed` |
| `limit` | (Optional) Number of element in the page.
**Type**: Integer |
| `before` | (Optional) Cursor before the current page.
**Type**: String |
| `after` | (Optional) Cursor after the current page.
**Type**: String |
#### Responses
| Code | Description |
|------|-------------|
| `200` | - |
| `401` | - |
| `403` | - |
| `500` | - |
### DELETE /policy_management/v4/applications
Revokes application of specific policy on specific context or multiple application. For multiple applications case, any critical, error or warning issues will be reported per application in the `issues` field of the response with code `200`.
#### 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::policy_manager::admin`
#### Request parameters
##### Query parameters
| Name | Description |
|------|-------------|
| `context_id` | (Optional) Delete applications by one or more context IDs. Maximum 100 items.
**Type**: String |
| `context_selection_id` | (Optional) Delete all applications for the resources in the context selection with the given ID.
**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}$` |
| `policy_id` | (Optional) Delete applications by one or more policy IDs. Maximum 100 items.
**Type**: String |
| `policy_selection_id` | (Optional) Delete all applications for the policies in the policy selection with the given ID.
**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}$` |
#### Responses
| Code | Description |
|------|-------------|
| `204` | The application was successfully revoked without any issues. |
| `200` | The application was revoked with issues. |
| `400` | - |
| `401` | - |
| `403` | - |
| `500` | - |
### GET /policy_management/v4/applications/issues/statistics
Fetches statistics for each issue occurred with applications.
#### 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::policy_management::read`
#### Request parameters
##### Query parameters
| Name | Description |
|------|-------------|
| `policy_id` | (Optional) Filter by one or more policy IDs. Maximum 30 items.
**Type**: String |
| `context_id` | (Optional) Filter by one or more resource IDs. Maximum 10 items.
**Type**: String |
| `links_and_issues` | (Optional) Request to calculate and return links and / or constraints on them. If `embed_brief` is requested - only non-constrained ('available') links should be returned (in `LinksAndIssues._linkIDs` array). If `embed_detailed` is requested - both links (non-constrained and constrained) and their constraint descriptions should be returned (in `LinksAndIssues._links` and `LinksAndIssues._issues` arrays).
**Type**: String
**Allowed values**:
- `embed_brief`
- `embed_detailed` |
#### Responses
| Code | Description |
|------|-------------|
| `200` | - |
| `403` | - |
| `500` | - |
### PUT /policy_management/v4/applications/run
Starts execution of a policy.
#### 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::policy_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `state` | **Type**: String
**Allowed values**:
- `running`
- `idle`
- `cancelling`
- `interaction_required` |
| `policy_id` | Policy must have one or more applications. Mutually exclusive with `settings`.
**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}$` |
| `arg` | **Type**: String |
| `context_ids` | A set of resources within `policy_id` applications. Should be not set if policy type does not assume application in resource context. May be not set if policy type assumes application in resource context and the policy execution needs to run on ALL resources.
**Type**: Array of String
**Array type description:**
Service-wide unique object ID generated server-side.
**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}$` |
| `context_selection_id` | A set of resources within `policy_id` applications. Should be not set if policy type does not assume application in resource context. May be not set if policy type assumes application in resource context and the policy execution needs to run on ALL resources.
**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}$` |
| `policy_type` | Specifies the policy type of the provided settings. Not required if execution is without `settings`.
**Type**: String |
| `settings` | The settings for a temporary policy to be run. Mutually exclusive with `policy_id`.
**Type**: Union
**May be any of**:
1. **Type**: Object
2. **Type**: String
3. **Type**: Integer
4. **Type**: Boolean |
**Example**:
```json
{
"state": "running",
"policy_id": "DcaDf6CC-eFC7-Bdc5-42dc-95B5B3FFDF3F",
"arg": "",
"context_ids": [
"8CfeA31e-E6ea-232e-CFC2-0d79Cb60cF85"
],
"context_selection_id": "2BAbB23F-fCE9-9DC6-6480-ecB98A1c9B09",
"policy_type": "",
"settings": {}
}
```
#### Responses
| Code | Description |
|------|-------------|
| `202` | Accepted for asynchronous run invocation. |
| `204` | Completed synchronously. |
| `400` | - |
| `401` | - |
| `403` | - |
| `500` | - |
### GET /policy_management/v4/policy_statuses
Fetches a list of applications grouped by provided policy. Policies constituting the
same `CompositePolicy` are considered as single logical item for filtering, sorting and paging.
#### 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::policy_management::read`
#### Request parameters
##### Query parameters
| Name | Description |
|------|-------------|
| `context_id` | (Optional) Filter by one or more resource IDs. Maximum 100 items.
**Type**: String |
| `join_not_applied` | (Optional) Include statuses for policies that have no applications.
**Type**: Boolean
**Default**: true |
| `status` | (Optional) Filter by one or more statuses. Items are of type `ExecutionStatus`. Maximum 10 items.
**Type**: String |
| `tenant_id` | (Optional) Filter by one or more tenant IDs or UUIDs. Maximum 100 items.
**Type**: String |
| `search` | (Optional) TODO
**Type**: String |
| `parent_id` | (Optional) Filter by one or more parent IDs. Maximum 100 items. If this filter is set, parent policies (i.e., root policies) will be excluded from the response.
**Type**: String |
| `policy_type` | (Optional) Filter by one or more policy types. Items are of type `PolicyType`. Maximum 10 items.
**Type**: String |
| `policy_id` | (Optional) Filter by one or more policy IDs. Maximum 100 items.
**Type**: String |
| `policy_selection_id` | (Optional) Filter by policies that are in the policy selection.
**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}$` |
| `created_at` | (Optional) **Type**: String |
| `updated_at` | (Optional) **Type**: String |
| `include_validation_issues` | (Optional) Include application context's `validation_issues`.
**Type**: Boolean |
| `include_aggregate_status` | (Optional) If true, application's `aggregate` status values will be returned in place of self `ApplicationStatus` values.
**Type**: Boolean |
| `order` | (Optional) Defines sorting by root applications' orderable items. Only one orderable is
allowed. The format is `sorting_mode(orderable)` (where `sorting_mode` is `asc` or
`desc`) or just `orderable` (with `sorting_mode` defaulted to `asc`).
Available orderable items:
- `created_at`
- `updated_at`
- `policy_type`
- `policy_name`
- `policy_tenant_name`
- `total_number_of_resources`
- `number_of_resources_by_status`
- `favorite`
Note that `number_of_resources_by_status` is equivalent to "order by number_of_resources_by_status_critical,
number_of_resources_by_status_error, number_of_resources_by_status_warning,
number_of_resources_by_status_ok,
number_of_resources_by_status_running,
number_of_resources_by_status_interaction_required"
**Type**: String |
| `links_and_issues` | (Optional) Request to calculate and return links and / or constraints on them. If `embed_brief` is requested - only non-constrained ('available') links should be returned (in `LinksAndIssues._linkIDs` array). If `embed_detailed` is requested - both links (non-constrained and constrained) and their constraint descriptions should be returned (in `LinksAndIssues._links` and `LinksAndIssues._issues` arrays).
**Type**: String
**Allowed values**:
- `embed_brief`
- `embed_detailed` |
| `limit` | (Optional) Number of element in the page.
**Type**: Integer |
| `before` | (Optional) Cursor before the current page.
**Type**: String |
| `after` | (Optional) Cursor after the current page.
**Type**: String |
#### Responses
| Code | Description |
|------|-------------|
| `200` | - |
| `400` | - |
| `401` | - |
| `403` | - |
| `500` | - |
### GET /resource_management/v4/resources
#### 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::resource_management::read`
#### Request parameters
##### Query parameters
| Name | Description |
|------|-------------|
| `include_attributes` | (Optional) If true, includes resources' attributes in the response. Mutually exclusive with `include_attribute_namespaces`.
**Type**: Boolean |
| `include_attribute_namespaces` | (Optional) Includes resources' attributes from specific namespaces. Mutually exclusive with `include_attributes`.
**Type**: String |
| `limit` | (Optional) Number of element in the page.
**Type**: Integer |
| `before` | (Optional) Cursor before the current page.
**Type**: String |
| `after` | (Optional) Cursor after the current page.
**Type**: String |
| `tenant_id` | (Optional) Filter by one or more tenant IDs or UUIDs. Maximum 100 items.
**Type**: String |
| `agent_id` | (Optional) Filter by one or more agent UUIDs. Maximum 100 items.
**Type**: String |
| `parent_id` | (Optional) Filter by one or more parent UUIDs. Maximum 100 items.
**Type**: String |
| `has_member_id` | (Optional) Filter by one or more member UUIDs. Maximum 100 items.
**Type**: String |
| `type` | (Optional) Filter by one or more resource types. Items are of type `ResourceType` or `cti.CTI` (for workloads derived from `cti.a.p.wm.workload.v1.0`). Maximum 10 items.
**Type**: String |
| `resource_id` | (Optional) Filter by one or more resource UUIDs. Maximum 100 items.
**Type**: String |
| `search` | (Optional) Search for resources by type and tags using an SQL-like syntax. See https://www.acronis.com/en-us/support/documentation/CyberProtectionService/index.html#operators-dynamic-groups.html
**Type**: String |
| `not_applied_only` | (Optional) Fetch all resources that have no applied policies. Mutually exclusive with `not_applied_only` and `applied...` filters. Redundant if `applicable_to_policy_id` or `applicable_to_policy_selection_id` are also specified.
**Type**: Boolean |
| `applicable_to_policy_id` | (Optional) Fetch all resources that are applicable to the policies with the given IDs. The IDs are of type `InternalID`. Maximum 100 items. Mutually exclusive with `not_applied_only` and `applied...` filters.
**Type**: String |
| `applicable_to_policy_selection_id` | (Optional) Fetch all resources that are applicable to the policies in the policy selection. Mutually exclusive with `applied...` filters.
**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}$` |
| `applied_only` | (Optional) Fetch all resources that have applied policies. Mutually exclusive with `not_applied_only` and `applicable...` filters. Redundant if `applied_to_policy_id` or `applied_to_policy_selection_id` are also specified.
**Type**: Boolean |
| `applied_to_policy_id` | (Optional) Fetch all resources that are applied to the policies with the given UUIDs. Maximum 100 items. Mutually exclusive with `not_applied_only` and `applicable...` filters.
**Type**: String |
| `applied_to_policy_selection_id` | (Optional) Fetch all resources applied to the policies in the selection with the given id. Mutually exclusive with `not_applied_only` and `applicable...` filters.
**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}$` |
| `include_deleted` | (Optional) If true, includes deleted resources.
**Type**: Boolean |
| `allowed_actions` | (Optional) Fetch all resources that have matching allowed_actions. Note that you probably would also want to set links_and_issues to get actions in _links or _linkIds. List of possible actions is listed in Actions enum in common.raml, resource management section
**Type**: String |
| `updated_at` | (Optional) **Type**: String |
| `is_group` | (Optional) If true, includes only groups. If false, includes only resources, without groups.
**Type**: Boolean |
#### Responses
| Code | Description |
|------|-------------|
| `200` | - |
| `400` | - |
| `401` | - |
| `403` | - |
| `500` | - |
### DELETE /resource_management/v4/resources
#### 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::resource_management::read`
#### Request parameters
##### Query parameters
| Name | Description |
|------|-------------|
| `resource_tag` | (Optional) Filter by resource tag
**Type**: String |
| `resource_id` | (Optional) Filter by one or more resource IDs. The IDs are of type `ScopedExternalID`. Maximum 100 items.
**Type**: String |
| `agent_id` | (Optional) Filter by one agent UUID. Maximum 100 items.
**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}$` |
#### Responses
| Code | Description |
|------|-------------|
| `204` | Resources deleted successfully. |
| `422` | There are issues that blocked the resource creation. |
| `400` | Malformed request errors. |
| `401` | - |
| `403` | - |
| `500` | - |
### POST /resource_management/v4/resources
#### 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::resource_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `is_auto_created` | Automatic creation happens in workload merge and cluster-like use case, when `aggregates_detection_query` is defined per-workload type. Otherwise, workload is explicitly created - at the time of metadata provisioning or at runtime by a vendor agent or connector, or at runtime by a cusomter.
**Type**: Boolean |
| `group_condition` | Per-workload children selection query, if the workload is a dynamic group.
**Type**: String |
| `_issues` | **Type**: Array of Object
**Array type description:**
**Type**: Object |
| `agent_id` | **Type**: String |
| `external_id` | ID from original external system.
**Type**: String |
| `aspects` | Calculatable field, representing all aspects of the aggregate (i.e. all aspect workloads with same `aggregate_id` value).
**Type**: Array of any
**Array type description:**
**Type**: any |
| `created_at` | **Type**: DateTime |
| `name` | **Type**: String |
| `allowed_member_types` | **Type**: Array of String
**Array type description:**
A resource type in the `type.scope` format, where `type` is 'resource' and `scope` is
like one of the `ResourceScope` values defined in `impl/resource/type_scopes.raml`.
**Type**: String |
| `id` | Service-wide unique object ID generated server-side.
**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}$` |
| `updated_at` | **Type**: DateTime |
| `user_defined_name` | **Type**: String |
| `aggregation_status` | Aggregation / split status.
**Type**: String
**Allowed values**:
- `NOT_AGGREGATED`
- `MERGED_AUTOMATICALLY`
- `MERGED_MANUALLY`
- `SPLIT_MANUALLY` |
| `attributes` | Available base namespaces listed in the `ResourceAttributeNamespace` type definition.
**Type**: Array of Object
**Array type description:**
**Type**: Object |
| `client_id` | client ID of an agent or other subject, that manages and accesses the aspect. In case when a workload is managed by multiple agents, there should be multiple workload aspect instances, each aspect instance referencing different client ID of a corresponding agent, of same or different agent type.
**Type**: String |
| `tag` | Any user-defined string value, the resources can further be filtered by it
**Type**: String |
| `parent_group_ids` | **Type**: Array of String
**Array type description:**
Service-wide unique object ID generated server-side.
**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}$` |
| `aggregate_id` | Reference to workload aggregate.
**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}$` |
| `settings_schema` | Schema version.
**Type**: String
**Pattern**: `^([0-9]+)\.([0-9]+)$` |
| `allowed_actions` | Actions, allowed for the workload.
**Type**: Array of String
**Array type description:**
ID used in Cyber Application to uniquely identify an entity either type or instance.
Generic format - cti.[~]*[~(|)]
- ...v.
- vendor's short code (max 50 characters)
- application's short code (max 50 characters)
- entity's name (max 128 characters), may include `.` and `_` to be used for structuring
v. - entity's version
Better regex pattern (for advanced regex processors)
^cti\.(?'ctx'[a-z][a-z0-9_]{0,49}\.[a-z][a-z0-9_]{0,49}\.[a-z][a-z0-9_.]{1,127}\.v[\d]+\.[\d]+)(~(?&ctx))*(~[0-9a-f]{8}\b-[0-9a-f]{4}\b-[0-9a-f]{4}\b-[0-9a-f]{4}\b-[0-9a-f]{12})?$
**Type**: String
**Max length**: 1024
**Pattern**: `^cti\.([a-z][a-z0-9_]*\.[a-z][a-z0-9_]*\.[a-z][a-z0-9_.]+\.v[\d]+\.[\d]+)(~([a-z][a-z0-9_]*\.[a-z][a-z0-9_]*\.[a-z][a-z0-9_.]+\.v[\d]+\.[\d]+))*(~[0-9a-f]{8}\b-[0-9a-f]{4}\b-[0-9a-f]{4}\b-[0-9a-f]{4}\b-[0-9a-f]{12})?$` |
| `is_static` | Is the workload a customer created static group.
**Type**: Boolean |
| `agent_cluster_id` | **Type**: String |
| `cti` | The specific workload type.
**Type**: String
**Max length**: 1024
**Pattern**: `^cti\.([a-z][a-z0-9_]*\.[a-z][a-z0-9_]*\.[a-z][a-z0-9_.]+\.v[\d]+\.[\d]+)(~([a-z][a-z0-9_]*\.[a-z][a-z0-9_]*\.[a-z][a-z0-9_.]+\.v[\d]+\.[\d]+))*(~[0-9a-f]{8}\b-[0-9a-f]{4}\b-[0-9a-f]{4}\b-[0-9a-f]{4}\b-[0-9a-f]{12})?$` |
| `deleted_at` | **Type**: DateTime |
| `_links` | **Type**: Array of Object
**Array type description:**
**Type**: Object |
| `type` | A resource type in the `type.scope` format, where `type` is 'resource' and `scope` is
like one of the `ResourceScope` values defined in `impl/resource/type_scopes.raml`.
**Type**: String |
| `tenant_id` | **Type**: String |
| `is_customer_managed` | Workload is managed if it's created at the time of vendor metadata provisioning, or at runtime by a vendor agent or connector. Otherwise it's managed at runtime by a cusomter (e.g. dynamic and static groups).
**Type**: Boolean |
| `_link_ids` | **Type**: Array of String
**Array type description:**
**Type**: String
**Allowed values**:
- `policy_view`
- `policy_create`
- `policy_delete`
- `policy_update`
- `policy_enable`
- `policy_disable`
- `policy_add_child`
- `policy_remove_child`
- `policy_run`
- `policy_stop`
- `policy_apply`
- `policy_revoke`
- `policy_resume`
- `policy_pause`
- `policy_status`
- `backup`
- `restore`
- `getActivities`
- `largeScaleRecovery`
- `renameBackupPlans`
- `editBackupPlans`
- `collectSysinfo`
- `browse`
- `manageAsrm`
- `manageAsz`
- `activeProtection`
- `addToGroup`
- `removeFromGroup`
- `renameVMReplicationPlans`
- `editVMReplicationPlans`
- `startReplicaTest`
- `stopReplicaTest`
- `failover`
- `stopFailover`
- `failback`
- `finalize`
- `unmount`
- `detectApplications`
- `rebind`
- `permanentFailover`
- `remove`
- `replicate`
- `delete`
- `rename`
- `addResources`
- `removeResources`
- `move`
- `addStaticSubGroup`
- `addDynamicSubGroup`
- `editCondition`
- `changeCredentials`
- `changeMsSqlCredentials`
- `editCasSettings`
- `deleteCasSettings`
- `changeMsExchangeDbCredentials`
- `changeOffice365Credentials`
- `comment`
- `hostBackup`
- `removeAppliances`
- `select_disk_provision_mode`
- `reboot`
- `shutdown`
- `canDisasterRecovery`
- `manageLicense`
- `patchManagement`
- `remoteDesktop`
- `remoteWipe`
- `cyberDesktop` |
**Example**:
```json
{
"is_auto_created": true,
"group_condition": "",
"_issues": [
{
"link": "policy_view",
"severity": "ok",
"error": {
"context": {},
"code": "",
"domain": "",
"message": ""
}
}
],
"agent_id": "",
"external_id": "",
"aspects": [
null
],
"created_at": "1970-01-01T00:00:00.000Z",
"name": "",
"allowed_member_types": [
""
],
"id": "543bfaeE-fCDF-3d14-402E-2D324BefF8F4",
"updated_at": "1970-01-01T00:00:00.000Z",
"user_defined_name": "",
"aggregation_status": "NOT_AGGREGATED",
"attributes": [
{
"name": "",
"kvs": [
{
"key": "",
"value": {}
}
],
"details": {}
}
],
"client_id": "",
"tag": "",
"parent_group_ids": [
"11DE127c-4b93-Fe85-34F8-e9Bd941ECe80"
],
"aggregate_id": "3eF47aA9-2CEe-9cF4-416f-1c04f5aBa1c3",
"settings_schema": "162453726098541146378522446583249590028808862859878432498561746087959110028.8328807113391477102522424747",
"allowed_actions": [
""
],
"is_static": true,
"agent_cluster_id": "",
"cti": "cti.a.p.xx.v1.0",
"deleted_at": "1970-01-01T00:00:00.000Z",
"_links": [
{
"rel": "policy_view",
"href": ""
}
],
"type": "",
"tenant_id": "",
"is_customer_managed": true,
"_link_ids": [
"policy_view"
]
}
```
#### Responses
| Code | Description |
|------|-------------|
| `204` | Resource posted successfully. |
| `422` | There are issues that blocked the resource creation. |
| `400` | Malformed request errors. |
| `401` | - |
| `403` | - |
| `500` | - |
### POST /resource_management/v4/resources/batch
#### 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::resource_manager::admin`
#### Request parameters
##### Request body
**Media type**: application/json
**Schema definition**:
| Name | Description |
|------|-------------|
| `default` | **Type**: Array of Object
**Array type description:**
An object, which status is interesting or important to track for some reason for
end customer. Typically originates from an external (customer-owned) system or in any other
way owned by customer. Identifiable and having a granularity enough to be easy to track
to the customer. Actions executed on this object, that change status important to customer,
can be configured either per resource or via policies. In the latter case, multiple policies
(i.e., multiple rules / settings sets) may be configured for the resource simultaneously.
Resources can be simple ('atomic') or composite ('groups') or / and linked with other
resources, but no separate type for resource compositions is defined, as a consequence,
simple and composite resources share the same identifiers space.
From policies perspective, resources serve as contexts to which policy rules / settings are
applied and executed.
**Type**: Object |
**Example**:
```json
[
{
"is_auto_created": true,
"group_condition": "",
"_issues": [
{
"link": "policy_view",
"severity": "ok",
"error": {
"context": {},
"code": "",
"domain": "",
"message": ""
}
}
],
"agent_id": "",
"external_id": "",
"created_at": "1970-01-01T00:00:00.000Z",
"aspects": [
null
],
"name": "",
"allowed_member_types": [
""
],
"updated_at": "1970-01-01T00:00:00.000Z",
"id": "829f2f0C-7b34-BAf8-FFDA-5E28F5A7CcfC",
"aggregation_status": "NOT_AGGREGATED",
"user_defined_name": "",
"attributes": [
{
"name": "",
"kvs": [
{
"key": "",
"value": {}
}
],
"details": {}
}
],
"client_id": "",
"tag": "",
"parent_group_ids": [
"6FD1cF38-bcb6-CaE9-fb5E-6Cc8EDf70D1d"
],
"aggregate_id": "5EA1bB4e-DCE6-03de-54Fb-6eA8f456Ff67",
"settings_schema": "3354056181477055281903074049.7226408674706687028944702725572099093324685943884230605998",
"allowed_actions": [
""
],
"is_static": true,
"agent_cluster_id": "",
"cti": "cti.a.p.xx.v1.0",
"deleted_at": "1970-01-01T00:00:00.000Z",
"_links": [
{
"rel": "policy_view",
"href": ""
}
],
"type": "",
"is_customer_managed": true,
"tenant_id": "",
"_link_ids": [
"policy_view"
]
}
]
```
#### Responses
| Code | Description |
|------|-------------|
| `204` | Resources posted successfully. |
| `422` | There are issues that blocked the resource creation. |
| `400` | Malformed request errors. |
| `401` | - |
| `403` | - |
| `500` | - |
### GET /resource_management/v4/resources/count
#### 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::resource_management::read`
#### Request parameters
##### Query parameters
| Name | Description |
|------|-------------|
| `tenant_id` | (Optional) Filter by one or more tenant IDs or UUIDs. Maximum 100 items.
**Type**: String |
| `agent_id` | (Optional) Filter by one or more agent UUIDs. Maximum 100 items.
**Type**: String |
| `parent_id` | (Optional) Filter by one or more parent UUIDs. Maximum 100 items.
**Type**: String |
| `has_member_id` | (Optional) Filter by one or more member UUIDs. Maximum 100 items.
**Type**: String |
| `type` | (Optional) Filter by one or more resource types. Items are of type `ResourceType` or `cti.CTI` (for workloads derived from `cti.a.p.wm.workload.v1.0`). Maximum 10 items.
**Type**: String |
| `resource_id` | (Optional) Filter by one or more resource UUIDs. Maximum 100 items.
**Type**: String |
| `search` | (Optional) Search for resources by type and tags using an SQL-like syntax. See https://www.acronis.com/en-us/support/documentation/CyberProtectionService/index.html#operators-dynamic-groups.html
**Type**: String |
| `not_applied_only` | (Optional) Fetch all resources that have no applied policies. Mutually exclusive with `not_applied_only` and `applied...` filters. Redundant if `applicable_to_policy_id` or `applicable_to_policy_selection_id` are also specified.
**Type**: Boolean |
| `applicable_to_policy_id` | (Optional) Fetch all resources that are applicable to the policies with the given IDs. The IDs are of type `InternalID`. Maximum 100 items. Mutually exclusive with `not_applied_only` and `applied...` filters.
**Type**: String |
| `applicable_to_policy_selection_id` | (Optional) Fetch all resources that are applicable to the policies in the policy selection. Mutually exclusive with `applied...` filters.
**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}$` |
| `applied_only` | (Optional) Fetch all resources that have applied policies. Mutually exclusive with `not_applied_only` and `applicable...` filters. Redundant if `applied_to_policy_id` or `applied_to_policy_selection_id` are also specified.
**Type**: Boolean |
| `applied_to_policy_id` | (Optional) Fetch all resources that are applied to the policies with the given UUIDs. Maximum 100 items. Mutually exclusive with `not_applied_only` and `applicable...` filters.
**Type**: String |
| `applied_to_policy_selection_id` | (Optional) Fetch all resources applied to the policies in the selection with the given id. Mutually exclusive with `not_applied_only` and `applicable...` filters.
**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}$` |
| `include_deleted` | (Optional) If true, includes deleted resources.
**Type**: Boolean |
| `allowed_actions` | (Optional) Fetch all resources that have matching allowed_actions. Note that you probably would also want to set links_and_issues to get actions in _links or _linkIds. List of possible actions is listed in Actions enum in common.raml, resource management section
**Type**: String |
| `updated_at` | (Optional) **Type**: String |
| `is_group` | (Optional) If true, includes only groups. If false, includes only resources, without groups.
**Type**: Boolean |
#### Responses
| Code | Description |
|------|-------------|
| `200` | - |
| `400` | - |
| `401` | - |
| `403` | - |
| `500` | - |
### GET /resource_management/v4/resources/{resource_internal_or_external_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::resource_management::read`
#### Request parameters
##### Query parameters
| Name | Description |
|------|-------------|
| `include_attributes` | (Optional) If true, includes resource's attributes in the response. Mutually exclusive with `include_attribute_namespaces`.
**Type**: Boolean |
| `include_attribute_namespaces` | (Optional) Includes resource's attributes from specific namespaces. Mutually exclusive with `include_attributes`.
**Type**: String |
| `links_and_issues` | (Optional) Request to calculate and return links and / or constraints on them. If `embed_brief` is requested - only non-constrained ('available') links should be returned (in `LinksAndIssues._linkIDs` array). If `embed_detailed` is requested - both links (non-constrained and constrained) and their constraint descriptions should be returned (in `LinksAndIssues._links` and `LinksAndIssues._issues` arrays).
**Type**: String
**Allowed values**:
- `embed_brief`
- `embed_detailed` |
#### Responses
| Code | Description |
|------|-------------|
| `200` | - |
| `404` | - |
| `401` | - |
| `403` | - |
| `500` | - |
### GET /resource_management/v4/resources/{resource_internal_or_external_id}/attributes
Fetches a list of resource's attributes from all namespaces.
#### 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::resource_management::read`
#### Request parameters
#### Responses
| Code | Description |
|------|-------------|
| `200` | - |
| `404` | - |
| `401` | - |
| `403` | - |
| `500` | - |
### GET /resource_management/v4/resource_statuses
#### 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::resource_management::read`
#### Request parameters
##### Query parameters
| Name | Description |
|------|-------------|
| `tenant_id` | (Optional) Filter by one or more tenant IDs or UUIDs. Maximum 100 items.
**Type**: String |
| `agent_id` | (Optional) Filter by one or more agent UUIDs. Maximum 100 items.
**Type**: String |
| `parent_id` | (Optional) Filter by one or more parent UUIDs. Maximum 100 items.
**Type**: String |
| `has_member_id` | (Optional) Filter by one or more member UUIDs. Maximum 100 items.
**Type**: String |
| `type` | (Optional) Filter by one or more resource types. Items are of type `ResourceType`. Maximum 10 items.
**Type**: String |
| `resource_id` | (Optional) Filter by one or more resource UUIDs. Maximum 100 items.
**Type**: String |
| `selection_id` | (Optional) Filter by one or more selection
**Type**: String |
| `search` | (Optional) Search for resources by type and tags using an SQL-like syntax.
**Type**: String |
| `include_deleted` | (Optional) If true, includes deleted resources.
**Type**: Boolean |
| `include_attributes` | (Optional) If true, includes resources' attributes in the response. Mutually exclusive with `include_attribute_namespaces`.
**Type**: Boolean |
| `include_attribute_namespaces` | (Optional) Includes resources' attributes from specific namespaces. Mutually exclusive with `include_attributes`.
**Type**: String |
| `updated_at` | (Optional) **Type**: String |
| `order` | (Optional) Defines sorting by root applications' orderable items. Only one orderable is
allowed. The format is `sorting_mode(orderable)` (where `sorting_mode` is `asc` or
`desc`) or just `orderable` (with `sorting_mode` defaulted to `asc`).
Available orderable items:
- `is_group`
- `asc(updated_at)`
**Type**: String |
| `limit` | (Optional) Number of element in the page.
**Type**: Integer |
| `before` | (Optional) Cursor before the current page.
**Type**: String |
| `after` | (Optional) Cursor after the current page.
**Type**: String |
#### Responses
| Code | Description |
|------|-------------|
| `200` | - |
| `401` | - |
| `403` | - |
| `500` | - |