# Alert Manager API **Base URL**: https://dev-cloud.acronis.com/api/alert_manager/v1 ## Security ### OAuth 2.0 OAuth 2.0 security scheme definition for a user authorization. Supported grant types: * `client_credentials` * `password` * `authorization_code` * `urn:ietf:params:oauth:grant-type:jwt-bearer` 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) OAuth 2.0 access token.

**Type**: String
**Pattern**: `^Bearer [0-9a-zA-Z\-\._~+/]+={0,2}$` | ### Scopes * `urn:acronis.com::alert_manager::admin` * `urn:acronis.com::alert_manager::viewer` ## Endpoints ### Create an alert (POST /alerts) Creates and activates an alert. #### 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::alert_manager::admin` #### Request parameters ##### Request body **Media type**: `application/json` The request body is one of the following types: **`GreatHornAlerts`**: - `_sourceTimeStamp` — **Type**: Long
**Format**: int64 - `_source` — Identifier of the alert producer.

**Type**: String - `context` — **Deprecated.** Value of unique key for alerts with current type.
Parameters of object can be only strings.
Variable structure of context is specified with custom types.

**Type**: Object - `createdAt` — **Type**: DateTime
**Format**: rfc3339 - `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}$` - `details` — Alert type specific payload

**Type**: Object - `tenantID` — **Type**: String - `severity` — Alert severity level.

**Type**: String
**Allowed values**:
- `ok`
- `information`
- `warning`
- `error`
- `critical` - `type` — Alert type

**Type**: String
**Allowed values**:
- `MaliciousEmailDetectedGreatHorn` - `affinity` — Alert synchronization affinity (e.g., agent ID).

**Type**: String **Example**: ```json { "_sourceTimeStamp": 0, "_source": "", "context": {}, "createdAt": "1970-01-01T00:00:00.000Z", "id": "", "details": { "resource": "", "emailSubject": "", "scanResult": "", "emailFrom": "", "detectionCategory": "" }, "tenantID": "", "severity": "ok", "type": "MaliciousEmailDetectedGreatHorn", "affinity": "" } ``` **`PerceptionPointAlerts`**: - `PerceptionPointAlerts` — **Type**: Union
**May be any of**:
1. An alert that is raised if Perception Point email security has detected a potential threat in an email message.

**Type**: Object

2. An alert that is raised if Perception Point email security has detected a suspicious email message.

**Type**: Object **Example**: ```json { "_sourceTimeStamp": 0, "_source": "", "context": {}, "createdAt": "1970-01-01T00:00:00.000Z", "id": "", "details": { "resource": "", "emailSubject": "", "scanResult": "", "emailFrom": "", "detectionCategory": "" }, "tenantID": "", "severity": "ok", "type": "MaliciousEmailDetectedPerceptionPointError", "affinity": "" } ``` **`BackupAlerts`**: - `_sourceTimeStamp` — **Type**: Long
**Format**: int64 - `_source` — Identifier of the alert producer.

**Type**: String - `context` — **Deprecated.** Value of unique key for alerts with current type.
Parameters of object can be only strings.
Variable structure of context is specified with custom types.

**Type**: Object - `createdAt` — **Type**: DateTime
**Format**: rfc3339 - `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}$` - `details` — Alert type specific payload

**Type**: Object - `tenantID` — **Type**: String - `severity` — Alert severity level.

**Type**: String
**Allowed values**:
- `ok`
- `information`
- `warning`
- `error`
- `critical` - `type` — Alert type

**Type**: String
**Allowed values**:
- `NoBackupForXDays` - `affinity` — Alert synchronization affinity (e.g., agent ID).

**Type**: String **Example**: ```json { "_sourceTimeStamp": 0, "_source": "", "context": {}, "createdAt": "1970-01-01T00:00:00.000Z", "id": "", "details": { "planName": "", "errorMessage": {}, "resourceId": "", "resourceName": "", "planId": "", "daysPassed": 0 }, "tenantID": "", "severity": "ok", "type": "NoBackupForXDays", "affinity": "" } ``` **`GenericAlert`**: - `_sourceTimeStamp` — **Type**: Long
**Format**: int64 - `_source` — Identifier of the alert producer.

**Type**: String - `context` — **Deprecated.** Value of unique key for alerts with current type.
Parameters of object can be only strings.
Variable structure of context is specified with custom types.

**Type**: Object - `createdAt` — **Type**: DateTime
**Format**: rfc3339 - `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}$` - `details` — Alert type specific payload

**Type**: Object - `tenantID` — **Type**: String - `severity` — Alert severity level.

**Type**: String
**Allowed values**:
- `ok`
- `information`
- `warning`
- `error`
- `critical` - `type` — Alert type

**Type**: String - `affinity` — Alert synchronization affinity (e.g., agent ID).

**Type**: String **Example**: ```json { "_sourceTimeStamp": 0, "_source": "", "context": {}, "createdAt": "1970-01-01T00:00:00.000Z", "id": "", "details": {}, "tenantID": "", "severity": "ok", "type": "", "affinity": "" } ``` #### Responses ##### `200` — ID of the created alert. **Media type**: `application/json` - `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}$` **Example**: ```json { "id": "BACA9625-A993-4722-B03F-F2807C85E76F" } ``` ##### `400` — Alert is invalid, e.g. incompatible with the alert type definition. **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**: *`example_0`*: ```json { "domain": "AlertManager", "context": { "missing": "planId", "type": "MaliciousUrlBlocked" }, "reason": "InvalidContext", "debug": { "msg": "Context must have fields specified for type" }, "code": "InvalidContext" } ``` ##### `401` — Request is refused because authentication parameters are invalid. **Media type**: `text/plain` - `schema` — **Type**: any **Example**: ```text 401 Authorization Required

401 Authorization Required


nginx
``` ##### `403` — A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "header": "X-Apigw-Tenant-Id" }, "reason": "TenantIDRequired", "debug": { "msg": "Tenant identifier not found" }, "code": "TenantIDRequired" } ``` ### Fetch all alerts (GET /alerts) Fetches all alerts by optional 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::alert_manager::viewer` #### Request parameters ##### Query parameters | Name | Description | |------|-------------| | `limit` | (Optional) A limit on number of objects to be returned.

**Type**: Integer | | `skip` | (Optional) IDs of the alerts to exclude from the response.

**Type**: Array of String
**Array type description:**
**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` | (Optional) A filter by date when the alert was dismissed. Must be a Unix timestamp in nanoseconds.

Available operators:

* `eq` - equals
* `lt` - less than
* `gt` - greater than
* `le` - less than or equals
* `ge` - greater than or equals

**Type**: String
**Pattern**: `^([0-9]+)|(eq\([0-9]+\))$|(le\([0-9]+\))|(lt\([0-9]+\))|(gt\([0-9]+\))|(ge\([0-9]+\))$` | | `id` | (Optional) Case-insensitive IDs of the alerts to return in the results.

**Type**: Array of String
**Array type description:**
**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}$` | | `query` | (Optional) A text to search for within `planName` or `resourceName` fields of the alerts. The search is case-insensitive.

**Type**: String | | `severity` | (Optional) A filter by the alert severity.

Available operators:

* `eq` - equals to the specified value: eq(warning)
* `or` - equals to one of the specified values: or(warning,critical)
* `lt` - less than the specified value: lt(warning)
* `gt` - greater than the specified value: gt(warning)
* `le` - less than or equals to the specified value: le(warning)
* `ge` - greater than or equals to the specified value: ge(warning)

**Type**: String
**Allowed values**:
- `ok`
- `information`
- `warning`
- `error`
- `critical` | | `show_deleted` | (Optional) If true, dismissed alerts will be included in the response.

**Type**: Boolean
**Default**: false | | `show_deleted_only` | (Optional) If true, only dismissed alerts will be included in the response.

**Type**: Boolean
**Default**: false | | `source` | (Optional) A filter by the alert producer.

**Type**: String | | `source_time_stamp` | (Optional) A filter by timestamp that was provided by an alert producer.
The timestamp may be an arbitrary integer value.

Available operators:

* `eq` - equals
* `lt` - less than
* `gt` - greater than
* `le` - less than or equals
* `ge` - greater than or equals

**Type**: String
**Pattern**: `^([0-9]+)|(eq\([0-9]+\))$|(le\([0-9]+\))|(lt\([0-9]+\))|(gt\([0-9]+\))|(ge\([0-9]+\))$` | | `type` | (Optional) A filter by list of alert types. A list of registered types can be obtained by sending a GET request to the `/types` endpoint.

**Type**: Array of String
**Array type description:**
**Type**: String | | `updated_at` | (Optional) A filter by date when the alert was created or dismissed. Must be a Unix timestamp in nanoseconds.

Available operators:

* `eq` - equals
* `lt` - less than
* `gt` - greater than
* `le` - less than or equals
* `ge` - greater than or equals

**Type**: String
**Pattern**: `^([0-9]+)|(eq\([0-9]+\))$|(le\([0-9]+\))|(lt\([0-9]+\))|(gt\([0-9]+\))|(ge\([0-9]+\))$` | | `created_at` | (Optional) A filter by date when the alert was created. Must be a Unix timestamp in nanoseconds.

Available operators:

* `eq` - equals
* `lt` - less than
* `gt` - greater than
* `le` - less than or equals
* `ge` - greater than or equals

**Type**: String
**Pattern**: `^([0-9]+)|(eq\([0-9]+\))$|(le\([0-9]+\))|(lt\([0-9]+\))|(gt\([0-9]+\))|(ge\([0-9]+\))$` | | `category` | (Optional) A filter by list of alert categories. A list of registered categories can be obtained by sending a GET request to the `/categories` endpoint.

* Example: `category=Backup&category=Monitoring`

**Type**: Array of String
**Array type description:**
**Type**: String | | `planId` | (Optional) Case-insensitive filter for alerts with the specified plan IDs.

The following rules are applied:
* planId=BackupPlan01 - matches the exact `BackupPlan01` string in the corresponding parameter
* planId=or(BackupPlan01,BackupPlan02) - matches the exact `BackupPlan01` or `BackupPlan02` strings in the corresponding parameter

Examples: `planId=A1111&planId=B2222`
`planId=or(A1111,B2222)`

**Type**: Array of String
**Array type description:**
**Type**: String | | `resourceId` | (Optional) Case-insensitive filter for alerts with the specified resource IDs.

The following rules are applied:
* resourceId=FileResource01 - matches the exact `FileResource01` string in the corresponding parameter
* resourceId=or(FileResource01,FileResource02) - matches the exact `FileResource01` or `FileResource02` strings in the corresponding parameter

Examples: `resourceId=A1111&resourceId=B2222`
`resourceId=or(A1111,B2222)`

**Type**: Array of String
**Array type description:**
**Type**: String | | `planName` | (Optional) Case-insensitive filter for alerts with the specified plan names.

The following rules are applied:
* planName=Plan01 - matches the substring `Plan01` in the corresponding parameter
* planName=eq(BackupPlan01) - matches the exact `BackupPlan01` string in the corresponding parameter
* planName=or(BackupPlan01,BackupPlan02) - matches the exact `BackupPlan01` or `BackupPlan02` strings in the corresponding parameter

Examples: `planName=Plan1&planName=eq(BackupPlan2)`
`planName=Plan1&planName=or(BackupPlan2,BackupPlan3)`

**Type**: Array of String
**Array type description:**
**Type**: String | | `resourceName` | (Optional) Case-insensitive filter for alerts with the specified resource names.

The following rules are applied:
* resourceName=Resource01 - matches the substring `Resource01` in the corresponding parameter
* resourceName=eq(FileResource01) - matches the exact `FileResource01` string in the corresponding parameter
* resourceName=or(FileResource01,FileResource02) - matches the exact `FileResource01` or `FileResource02` strings in the corresponding parameter

Examples: `resourceName=Resource1&resourceName=eq(FileResource2)`
`resourceName=Resource1&resourceName=or(FileResource2,FileResource3)`

**Type**: Array of String
**Array type description:**
**Type**: String | | `tenant` | (Optional) A filter by the alert tenant ID.

**Type**: Array of String
**Array type description:**
**Type**: String | | `order` | (Optional) An ordering filter that orders the results by parameter value.
If no operator provided, the results will be ordered in ascending order.

Following parameters can be used:

* `created_at`
* `type`
* `severity`
* `source`
* `source_time_stamp`
* `updated_at`
* `deleted_at`
* `category`
* `planId`
* `planName`
* `resourceId`
* `resourceName`

Available operators:

* `asc` - ascending
* `desc` - descending

**Type**: String | #### Responses ##### `200` — List of alerts. **Media type**: `application/json` - `items` — **Type**: Array of Object
**Array type description:**
View of alert in responses.

**Type**: Object - `paging` — Paging format.

**Type**: Object **Example**: ```json { "items": [ { "_source": "6852F263-2B5E-48BF-B78B-486182D9BDBE", "updatedAt": "2021-04-05T20:41:42.352636392Z", "tenant": { "id": "56", "locator": "/1/50/53/56/" }, "_sourceTimeStamp": 3246, "id": "01C2D69A-112B-4DE1-98AE-8688223C5F4B", "createdAt": "2021-04-05T20:41:41Z", "details": { "activity": { "id": "D028B06E-36D6-43FF-9242-35E8A9917E3A" }, "activityId": "D028B06E-36D6-43FF-9242-35E8A9917E3A" }, "category": "Backup", "receivedAt": "2021-04-01T22:16:19.71025511Z", "severity": "critical", "type": "BackupFailed" }, { "updatedAt": "2021-04-05T23:41:55.089638934Z", "tenant": { "id": "1", "locator": "/1/" }, "id": "BACA9625-A993-4722-B03F-F2807C85E76F", "createdAt": "2021-04-05T23:41:55.089638934Z", "details": {}, "category": "Disaster recovery", "receivedAt": "2021-04-05T23:41:55.089638324Z", "severity": "warning", "type": "DrInternetTrafficUnblocked" }, { "updatedAt": "2021-04-01T14:19:32.202462769Z", "tenant": { "id": "1", "locator": "/1/" }, "id": "CBE8B43A-70C9-4343-B942-82D56E34FDF0", "createdAt": "2021-04-01T14:19:32.202462769Z", "details": {}, "category": "Disaster recovery", "receivedAt": "2021-04-01T14:19:32.202461826Z", "severity": "warning", "type": "DrInternetTrafficUnblocked" } ], "paging": { "cursors": {} } } ``` ##### `401` — Request is refused because authentication parameters are invalid. **Media type**: `text/plain` - `schema` — **Type**: any **Example**: ```text 401 Authorization Required

401 Authorization Required


nginx
``` ##### `403` — A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "header": "X-Apigw-Tenant-Id" }, "reason": "TenantIDRequired", "debug": { "msg": "Tenant identifier not found" }, "code": "TenantIDRequired" } ``` ### Dismiss the alerts by filter (DELETE /alerts) Dismisses the alerts by optional filtering parameters. Alerts will be dismissed even if they have the `orphaned` flag. Note that if no filter is provided all alerts within the tenant scope will be dismissed. #### 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::alert_manager::admin` #### Request parameters ##### Query parameters | Name | Description | |------|-------------| | `deleted_at` | (Optional) A filter by date when the alert was dismissed. Must be a Unix timestamp in nanoseconds.

Available operators:

* `eq` - equals
* `lt` - less than
* `gt` - greater than
* `le` - less than or equals
* `ge` - greater than or equals

**Type**: String
**Pattern**: `^([0-9]+)|(eq\([0-9]+\))$|(le\([0-9]+\))|(lt\([0-9]+\))|(gt\([0-9]+\))|(ge\([0-9]+\))$` | | `id` | (Optional) Case-insensitive IDs of the alerts to return in the results.

**Type**: Array of String
**Array type description:**
**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}$` | | `query` | (Optional) A text to search for within `planName` or `resourceName` fields of the alerts. The search is case-insensitive.

**Type**: String | | `severity` | (Optional) A filter by the alert severity.

Available operators:

* `eq` - equals to the specified value: eq(warning)
* `or` - equals to one of the specified values: or(warning,critical)
* `lt` - less than the specified value: lt(warning)
* `gt` - greater than the specified value: gt(warning)
* `le` - less than or equals to the specified value: le(warning)
* `ge` - greater than or equals to the specified value: ge(warning)

**Type**: String
**Allowed values**:
- `ok`
- `information`
- `warning`
- `error`
- `critical` | | `show_deleted` | (Optional) If true, dismissed alerts will be included in the response.

**Type**: Boolean
**Default**: false | | `show_deleted_only` | (Optional) If true, only dismissed alerts will be included in the response.

**Type**: Boolean
**Default**: false | | `source` | (Optional) A filter by the alert producer.

**Type**: String | | `source_time_stamp` | (Optional) A filter by timestamp that was provided by an alert producer.
The timestamp may be an arbitrary integer value.

Available operators:

* `eq` - equals
* `lt` - less than
* `gt` - greater than
* `le` - less than or equals
* `ge` - greater than or equals

**Type**: String
**Pattern**: `^([0-9]+)|(eq\([0-9]+\))$|(le\([0-9]+\))|(lt\([0-9]+\))|(gt\([0-9]+\))|(ge\([0-9]+\))$` | | `type` | (Optional) A filter by list of alert types. A list of registered types can be obtained by sending a GET request to the `/types` endpoint.

**Type**: Array of String
**Array type description:**
**Type**: String | | `updated_at` | (Optional) A filter by date when the alert was created or dismissed. Must be a Unix timestamp in nanoseconds.

Available operators:

* `eq` - equals
* `lt` - less than
* `gt` - greater than
* `le` - less than or equals
* `ge` - greater than or equals

**Type**: String
**Pattern**: `^([0-9]+)|(eq\([0-9]+\))$|(le\([0-9]+\))|(lt\([0-9]+\))|(gt\([0-9]+\))|(ge\([0-9]+\))$` | | `created_at` | (Optional) A filter by date when the alert was created. Must be a Unix timestamp in nanoseconds.

Available operators:

* `eq` - equals
* `lt` - less than
* `gt` - greater than
* `le` - less than or equals
* `ge` - greater than or equals

**Type**: String
**Pattern**: `^([0-9]+)|(eq\([0-9]+\))$|(le\([0-9]+\))|(lt\([0-9]+\))|(gt\([0-9]+\))|(ge\([0-9]+\))$` | | `category` | (Optional) A filter by list of alert categories. A list of registered categories can be obtained by sending a GET request to the `/categories` endpoint.

* Example: `category=Backup&category=Monitoring`

**Type**: Array of String
**Array type description:**
**Type**: String | | `planId` | (Optional) Case-insensitive filter for alerts with the specified plan IDs.

The following rules are applied:
* planId=BackupPlan01 - matches the exact `BackupPlan01` string in the corresponding parameter
* planId=or(BackupPlan01,BackupPlan02) - matches the exact `BackupPlan01` or `BackupPlan02` strings in the corresponding parameter

Examples: `planId=A1111&planId=B2222`
`planId=or(A1111,B2222)`

**Type**: Array of String
**Array type description:**
**Type**: String | | `resourceId` | (Optional) Case-insensitive filter for alerts with the specified resource IDs.

The following rules are applied:
* resourceId=FileResource01 - matches the exact `FileResource01` string in the corresponding parameter
* resourceId=or(FileResource01,FileResource02) - matches the exact `FileResource01` or `FileResource02` strings in the corresponding parameter

Examples: `resourceId=A1111&resourceId=B2222`
`resourceId=or(A1111,B2222)`

**Type**: Array of String
**Array type description:**
**Type**: String | | `planName` | (Optional) Case-insensitive filter for alerts with the specified plan names.

The following rules are applied:
* planName=Plan01 - matches the substring `Plan01` in the corresponding parameter
* planName=eq(BackupPlan01) - matches the exact `BackupPlan01` string in the corresponding parameter
* planName=or(BackupPlan01,BackupPlan02) - matches the exact `BackupPlan01` or `BackupPlan02` strings in the corresponding parameter

Examples: `planName=Plan1&planName=eq(BackupPlan2)`
`planName=Plan1&planName=or(BackupPlan2,BackupPlan3)`

**Type**: Array of String
**Array type description:**
**Type**: String | | `resourceName` | (Optional) Case-insensitive filter for alerts with the specified resource names.

The following rules are applied:
* resourceName=Resource01 - matches the substring `Resource01` in the corresponding parameter
* resourceName=eq(FileResource01) - matches the exact `FileResource01` string in the corresponding parameter
* resourceName=or(FileResource01,FileResource02) - matches the exact `FileResource01` or `FileResource02` strings in the corresponding parameter

Examples: `resourceName=Resource1&resourceName=eq(FileResource2)`
`resourceName=Resource1&resourceName=or(FileResource2,FileResource3)`

**Type**: Array of String
**Array type description:**
**Type**: String | #### Responses ##### `204` — Alerts were successfully dismissed. ##### `401` — Request is refused because authentication parameters are invalid. **Media type**: `text/plain` - `schema` — **Type**: any **Example**: ```text 401 Authorization Required

401 Authorization Required


nginx
``` ##### `403` — A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "header": "X-Apigw-Tenant-Id" }, "reason": "TenantIDRequired", "debug": { "msg": "Tenant identifier not found" }, "code": "TenantIDRequired" } ``` ### Fetch an alert by ID (GET /alerts/{id}) Fetches the information about the alert by 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::alert_manager::viewer` #### Request parameters ##### Query parameters | Name | Description | |------|-------------| | `show_deleted` | (Optional) If true, dismissed alerts will be included in the response.

**Type**: Boolean
**Default**: false | #### Responses ##### `200` — Alert has been fetched successfully. **Media type**: `application/json` - `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}$` - `type` — **Type**: String - `severity` — Alert severity level.

**Type**: String
**Allowed values**:
- `ok`
- `information`
- `warning`
- `error`
- `critical` - `affinity` — Alert synchronization affinity (e.g., agent ID).

**Type**: String - `createdAt` — A client-side date and time when alert was created. Equals to the `receivedAt` field if not set by client.

**Type**: String
**Pattern**: `^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+){0,1}(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$` - `deletedAt` — A date and time when the alert was dismissed.

**Type**: String
**Pattern**: `^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+){0,1}(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$` - `details` — Copy of context is merged to details.
Null if details and context are empty.

**Type**: Object - `receivedAt` — A server-side date and time when the alert was received.

**Type**: String
**Pattern**: `^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+){0,1}(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$` - `_source` — An identifier of the alert producer.

**Type**: String - `_sourceTimeStamp` — **Type**: Long
**Format**: int64 - `tenant` — **Type**: Object - `updatedAt` — A date and time when the alert has been activated, deleted or dismissed.

**Type**: String
**Pattern**: `^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+){0,1}(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$` - `category` — Alert category.

**Type**: String - `falsePositive` — Specifies whether alert is false positive or not.

**Type**: Boolean **Example**: ```json { "_source": "6852F263-2B5E-48BF-B78B-486182D9BDBE", "updatedAt": "2021-04-05T20:41:42.352636392Z", "tenant": { "id": "56", "locator": "/1/50/53/56/" }, "_sourceTimeStamp": 3246, "id": "01C2D69A-112B-4DE1-98AE-8688223C5F4B", "createdAt": "2021-04-05T20:41:41Z", "details": { "activity": { "id": "D028B06E-36D6-43FF-9242-35E8A9917E3A" }, "activityId": "D028B06E-36D6-43FF-9242-35E8A9917E3A" }, "category": "Backup", "receivedAt": "2021-04-01T22:16:19.71025511Z", "severity": "critical", "type": "BackupFailed" } ``` ##### `400` — Invalid UUID. **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**: *`example_0`*: ```json { "domain": "AlertManager", "context": { "uuid": "26DDF2BG-8BF3-4880-AA22-E107CD66A64D" }, "reason": "InvalidUUID", "debug": { "msg": "encoding/hex: invalid byte: U+0047 'G'" }, "code": "InvalidUUID" } ``` ##### `404` — Alert was not found. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "id": "EC22CEE6-FC80-4325-A10F-7EAA5F424759" }, "reason": "AlertNotFoundById", "debug": { "msg": "Alert not found" }, "code": "AlertNotFoundById" } ``` ##### `401` — Request is refused because authentication parameters are invalid. **Media type**: `text/plain` - `schema` — **Type**: any **Example**: ```text 401 Authorization Required

401 Authorization Required


nginx
``` ##### `403` — A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "header": "X-Apigw-Tenant-Id" }, "reason": "TenantIDRequired", "debug": { "msg": "Tenant identifier not found" }, "code": "TenantIDRequired" } ``` ### Dismiss an alert by ID (DELETE /alerts/{id}) Dismisses an alert by 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::alert_manager::admin` #### Request parameters #### Responses ##### `204` — Alert was successfully dismissed. ##### `400` — Invalid UUID. **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**: *`example_0`*: ```json { "domain": "AlertManager", "context": { "uuid": "26DDF2BG-8BF3-4880-AA22-E107CD66A64D" }, "reason": "InvalidUUID", "debug": { "msg": "encoding/hex: invalid byte: U+0047 'G'" }, "code": "InvalidUUID" } ``` ##### `404` — Alert was not found. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "id": "EC22CEE6-FC80-4325-A10F-7EAA5F424759" }, "reason": "AlertNotFoundById", "debug": { "msg": "Alert not found" }, "code": "AlertNotFoundById" } ``` ##### `401` — Request is refused because authentication parameters are invalid. **Media type**: `text/plain` - `schema` — **Type**: any **Example**: ```text 401 Authorization Required

401 Authorization Required


nginx
``` ##### `403` — A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "header": "X-Apigw-Tenant-Id" }, "reason": "TenantIDRequired", "debug": { "msg": "Tenant identifier not found" }, "code": "TenantIDRequired" } ``` ### Fetch categories (GET /categories) Fetches a list of enabled categories. #### 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::alert_manager::viewer` #### Request parameters ##### Query parameters | Name | Description | |------|-------------| | `include_disabled` | (Optional) If true, both enabled and disabled categories are returned.

**Type**: Boolean
**Default**: false | #### Responses ##### `200` — A list of categories. **Media type**: `application/json` - `items` — **Type**: Array of Object
**Array type description:**
An information about the alert category or alert type category.

**Type**: Object **Example**: ```json { "items": [ { "name": "Backup" }, { "name": "cti.a.p.am.alert.category.v1.0~a.test.category.v1.0", "alias": "test category" } ] } ``` ##### `401` — Request is refused because authentication parameters are invalid. **Media type**: `text/plain` - `schema` — **Type**: any **Example**: ```text 401 Authorization Required

401 Authorization Required


nginx
``` ##### `403` — A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "header": "X-Apigw-Tenant-Id" }, "reason": "TenantIDRequired", "debug": { "msg": "Tenant identifier not found" }, "code": "TenantIDRequired" } ``` ### Fetch alert counters (GET /count) Fetches the alert counters that may be grouped by optional 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::alert_manager::viewer` #### Request parameters ##### Query parameters | Name | Description | |------|-------------| | `embed_tenants` | (Optional) If true, alert counters will be grouped by tenants.

**Type**: Boolean | | `embed_types` | (Optional) If true, alert counters will be grouped by alert types. When combined with `embed_severities` alert counters will be grouped first by severities and then by types. This parameter is mutually exclusive with the `embed_categories` parameter.

**Type**: Boolean | | `embed_severities` | (Optional) If true, alert counters will be grouped by alert severities. When combined with `embed_types` alert counters will be grouped first by severities and then by types. This parameter is mutually exclusive with the `embed_categories` parameter.

**Type**: Boolean | | `embed_categories` | (Optional) If true, alert counters will be grouped by alert categories. This parameter is mutually exclusive with the `embed_types` and `embed_severities` parameters.

**Type**: Boolean | #### Responses ##### `200` — Live statistics for current alerts. **Media type**: `application/json` - `severitiesAndTypes` — Alert counters grouped by severity and then by type.

**Type**: Object - `severities` — Alert counters per severity.

**Type**: Object - `categories` — Alert counters per alert category. Object keys are identifiers of alert
categories, values are counters of alerts of these categories.

**Type**: Object - `types` — Alert counters per alert type. Object keys are identifiers of alert
types, values are counters of alerts of these types.

**Type**: Object - `tenants` — A list of alert counters per tenant.

**Type**: Array of Object
**Array type description:**
Alert counters for a tenant.

**Type**: Object - `total` — **Type**: Integer **Examples**: *`default`*: ```json { "total": 2 } ``` *`embed_types`*: ```json { "total": 2, "types": { "SomeType1": 0, "SomeType2": 2 } } ``` *`embed_severities_types`*: ```json { "total": 3, "severitiesAndTypes": { "information": { "total": 0 }, "warning": { "total": 2, "types": { "SomeType1": 1, "SomeType2": 1 } }, "error": { "total": 1, "types": { "SomeType1": 1 } }, "critical": { "total": 0 } } } ``` *`embed_categories`*: ```json { "total": 3, "categories": { "Backup": 2, "Disaster recovery": 1 } } ``` *`embed_tenants`*: ```json { "total": 3, "tenants": [ { "total": 3, "id": "2", "locator": "/1/2/" } ] } ``` *`embed_tenants_types`*: ```json { "total": 2, "types": { "SomeType1": 2 }, "tenants": [ { "total": 1, "types": { "SomeType1": 1 }, "id": "2", "locator": "/1/2/" }, { "total": 1, "types": { "SomeType1": 1 }, "id": "3", "locator": "/1/3/" } ] } ``` *`embed_tenants_severities`*: ```json { "total": 2, "severities": { "information": 0, "warning": 1, "error": 1, "critical": 0 }, "tenants": [ { "total": 1, "severities": { "information": 0, "warning": 0, "error": 1, "critical": 0 }, "id": "2", "locator": "/1/2/" }, { "total": 1, "severities": { "information": 0, "warning": 1, "error": 0, "critical": 0 }, "id": "3", "locator": "/1/3/" } ] } ``` *`embed_tenants_severities_types`*: ```json { "total": 2, "severitiesAndTypes": { "information": { "total": 0 }, "warning": { "total": 2, "types": { "SomeType1": 1, "SomeType2": 1 } }, "error": { "total": 1, "types": { "SomeType1": 1 } }, "critical": { "total": 0 } }, "tenants": [ { "total": 2, "severitiesAndTypes": { "information": { "total": 0 }, "warning": { "total": 1, "types": { "SomeType2": 1 } }, "error": { "total": 1, "types": { "SomeType1": 1 } }, "critical": { "total": 0 } }, "id": "2", "locator": "/1/2/" }, { "total": 1, "severitiesAndTypes": { "information": { "total": 0 }, "warning": { "total": 1, "types": { "SomeType1": 1 } }, "error": { "total": 0 }, "critical": { "total": 0 } }, "id": "3", "locator": "/1/3/" } ] } ``` *`embed_tenants_categories`*: ```json { "total": 2, "categories": { "Backup": 2 }, "tenants": [ { "total": 1, "categories": { "Backup": 1 }, "id": "2", "locator": "/1/2/" }, { "total": 1, "categories": { "Backup": 1 }, "id": "3", "locator": "/1/3/" } ] } ``` ##### `400` — Bad request **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**: *`example_2`*: ```json { "domain": "AlertManager", "code": "badRequest", "reason": "badRequest", "debug": { "msg": "Bad request" } } ``` ##### `401` — Request is refused because authentication parameters are invalid. **Media type**: `text/plain` - `schema` — **Type**: any **Example**: ```text 401 Authorization Required

401 Authorization Required


nginx
``` ##### `403` — A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "header": "X-Apigw-Tenant-Id" }, "reason": "TenantIDRequired", "debug": { "msg": "Tenant identifier not found" }, "code": "TenantIDRequired" } ``` ### Fetch alerts grouped by scope (GET /status) Returns the last of the most critical alerts grouped by selected scope. #### 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::alert_manager::viewer` #### Request parameters ##### Query parameters | Name | Description | |------|-------------| | `scope_key` | (Required) Groups the results by the context key or searchable details.
See registered alert types for available context keys and searchable details.

**Type**: String | | `scope_value` | (Optional) Scope values to filter alerts by.
If omitted, the response will contain the last most critical status among available alerts.

Client may group statuses for multiple scope values by using the `or()` operator:
* Example: `scope_key=KEY&scope_value=VAL1&scope_value=VAL2` - looks for two statuses
* Example: `scope_key=KEY&scope_value=or(VAL1,VAL2)` - looks for single status
* Example: `scope_key=KEY&scope_value=or(VAL1,VAL2)&scope_value=VAL3` - looks for two statuses

Client should explicitly url-encode values breaking URL syntax.
For example, to find a status of the resource with the `stepName` key containing `step 01` or `step 02`: `scope_key=stepName&scope_value=or(step%201,step%202)`

**Type**: Array of String
**Array type description:**
**Type**: String | #### Responses ##### `200` — Alert list grouped by scopes. **Media type**: `application/json` - `items` — **Type**: Array of Object
**Array type description:**
Status of the selected scope.

**Type**: Object **Example**: ```json { "items": [ { "scope": { "resourceId": "0A0E639A-4E27-4C61-AFFF-7BE314C30A33" }, "status": { "id": "01C2D69A-112B-4DE1-98AE-8688223C5F4B", "createdAt": "2021-04-01T22:16:19Z", "details": { "activity": { "id": "1F80FCFF-B72F-492E-8A9D-C01457FF505A", "type": "8F01AC13-F59E-4851-9204-DE1FD77E36B4" }, "activityId": "1F80FCFF-B72F-492E-8A9D-C01457FF505A", "resourceId": "0A0E639A-4E27-4C61-AFFF-7BE314C30A33", "resourceName": "DESKTOP-GCNCFC8" }, "severity": "critical", "type": "BackupFailed" } } ] } ``` ##### `400` — Bad request. **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**: *`example_2`*: ```json { "domain": "AlertManager", "code": "badRequest", "reason": "badRequest", "debug": { "msg": "Bad request" } } ``` ##### `414` — Too many scope values. For cloud deployment there is no practical limitation. For on-premise deployment known limits imposed by database engine are 32766 for SQLite and more than 32768 for MS SQL Server. **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**: *`example_3`*: ```json { "domain": "AlertManager", "code": "InternalDBError", "reason": "InternalDBError", "debug": { "msg": "Bad request" } } ``` ##### `401` — Request is refused because authentication parameters are invalid. **Media type**: `text/plain` - `schema` — **Type**: any **Example**: ```text 401 Authorization Required

401 Authorization Required


nginx
``` ##### `403` — A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "header": "X-Apigw-Tenant-Id" }, "reason": "TenantIDRequired", "debug": { "msg": "Tenant identifier not found" }, "code": "TenantIDRequired" } ``` ### Fetch all alert types (GET /types) Fetches all registered alert types. #### 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::alert_manager::viewer` #### Request parameters ##### Query parameters | Name | Description | |------|-------------| | `category` | (Optional) A filter by list of type categories. A list of registered categories can be obtained by sending a GET request to the `/categories` endpoint.

* Example: `category=Backup&category=Monitoring`

**Type**: Array of String
**Array type description:**
**Type**: String | | `os_type` | (Required) A filter by the list of operating systems supported by the alert types.

**Type**: Array of String
**Array type description:**
**Type**: String
**Allowed values**:
- `ios`
- `linux`
- `macos`
- `windows` | | `order` | (Optional) An ordering filter that orders the results by column name.
If no operator provided, the column will be ordered in ascending order.

Following columns can be used:

* `id`
* `severity`
* `category`

Available operators:

* `asc` - ascending
* `desc` - descending

**Type**: String | #### Responses ##### `200` — A list of registered alerts types. **Media type**: `application/json` - `items` — **Type**: Array of Object
**Array type description:**
An information about the alert type.

**Type**: Object **Example**: ```json { "items": [ { "supportedOS": [ "ios", "linux", "macos", "windows" ], "contextKeys": [ "planId", "resourceId" ], "enabled": true, "id": "BackupFailed", "searchableDetails": [ "planName", "resourceName" ], "category": "Backup", "severity": "critical", "cti_name": "cti.a.p.am.alerts.v1.0~a.backup.failed.v1.0" }, { "supportedOS": [ "ios", "linux", "macos", "windows" ], "contextKeys": [], "enabled": true, "alias": "test type", "id": "cti.a.p.am.alert.v1.0~a.test.type.v1.0", "searchableDetails": [], "category": "cti.a.p.am.alert.category.v1.0~a.test.category.v1.0", "severity": "error", "cti_name": "cti.a.p.am.alert.v1.0~a.test.type.v1.0" } ] } ``` ##### `401` — Request is refused because authentication parameters are invalid. **Media type**: `text/plain` - `schema` — **Type**: any **Example**: ```text 401 Authorization Required

401 Authorization Required


nginx
``` ##### `403` — A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "header": "X-Apigw-Tenant-Id" }, "reason": "TenantIDRequired", "debug": { "msg": "Tenant identifier not found" }, "code": "TenantIDRequired" } ``` ### Register new alert type (POST /types) Registers a new alert 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::alert_manager::admin` #### Request parameters ##### Request body **Media type**: `application/json` - `items` — **Type**: Array of Object
**Array type description:**
An information about the alert type.

**Type**: Object **Example**: ```json { "items": [ { "supportedOS": [ "ios", "linux", "macos", "windows" ], "contextKeys": [ "planId", "resourceId" ], "enabled": true, "exportable": [ { "name": "planId", "acep_name": "plan_id" }, { "name": "resourceId", "acep_name": "resource_id" }, { "name": "errorMessage", "acep_name": "error_reason", "acep_path": "reason" }, { "name": "planName", "acep_name": "plan_name" }, { "name": "taskType", "acep_name": "task_type" } ], "id": "BackupFailed", "searchableDetails": [ "planName", "resourceName" ], "category": "Backup", "severity": "critical", "cti_name": "cti.a.p.am.alerts.v1.0~a.backup.failed.v1.0" } ] } ``` #### Responses ##### `204` — Alert types were successfully registered. ##### `400` — Input parameters 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**: *`example_3`*: ```json { "domain": "AlertManager", "context": { "allowed": [ "warning", "error", "critical" ], "severity": "critical" }, "reason": "UnknownAlertSeverity", "debug": { "msg": "Alert severity in unknown" }, "code": "UnknownAlertSeverity" } ``` ##### `401` — Request is refused because authentication parameters are invalid. **Media type**: `text/plain` - `schema` — **Type**: any **Example**: ```text 401 Authorization Required

401 Authorization Required


nginx
``` ##### `403` — A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "header": "X-Apigw-Tenant-Id" }, "reason": "TenantIDRequired", "debug": { "msg": "Tenant identifier not found" }, "code": "TenantIDRequired" } ``` ### Fetch an alert type by ID (GET /types/{id}) Fetch registered alert type by 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::alert_manager::viewer` #### Request parameters #### Responses ##### `200` — Alert type was successfully fetched. **Media type**: `application/json` - `id` — **Type**: String - `enabled` — Alerts of disabled types are treated as non-existent for any GET request until type is enabled again.

**Type**: Boolean
**Default**: true - `severity` — Alert severity level.

**Type**: String
**Allowed values**:
- `ok`
- `information`
- `warning`
- `error`
- `critical` - `contextKeys` — **Deprecated.** A list of context keys that are used for validation of completeness and
correctness of alert context object.

**Type**: Array of String
**Array type description:**
**Type**: String - `searchableDetails` — A list of keys by which the alert type could be found and filtered.

**Type**: Array of String
**Array type description:**
**Type**: String - `exportable` — Mapping between `contextKeys` and `acep` field names to allow exporting of the required fields to ACEP.

**Type**: Array of Object
**Array type description:**
Key-value mapping between context fields and ACEP fields.
It is mostly for internal use only.

**Type**: Object - `supportedOS` — A list of operating systems that are supported by the alert type.

**Type**: Array of String
**Array type description:**
**Type**: String
**Allowed values**:
- `ios`
- `linux`
- `macos`
- `windows`

**Default**: ios,linux,macos,windows - `notificationType` — If specified, a notification of the specified type will be triggered on alert creation.

**Type**: String - `notificationExtraRecipients` — A list of additional notification targets that will receive notifications for alerts of this type.
By default notification is sent to the alert's tenant and its children.

**Type**: Array of String
**Array type description:**
**Type**: String
**Allowed values**:
- `SIBLINGS`
- `DIRECT_PARENT`
- `ALL_PARENTS` - `category` — Alert type category.

**Type**: String - `cti_name` — A cti-name used as an event subject type while sending events to event manager.

**Type**: String - `alias` — Alert type name alias.

**Type**: String **Example**: ```json { "supportedOS": [ "ios", "linux", "macos", "windows" ], "contextKeys": [ "planId", "resourceId" ], "enabled": true, "exportable": [ { "name": "planId", "acep_name": "plan_id" }, { "name": "resourceId", "acep_name": "resource_id" }, { "name": "errorMessage", "acep_name": "error_reason", "acep_path": "reason" }, { "name": "planName", "acep_name": "plan_name" }, { "name": "taskType", "acep_name": "task_type" } ], "id": "BackupFailed", "searchableDetails": [ "planName", "resourceName" ], "category": "Backup", "severity": "critical", "cti_name": "cti.a.p.am.alerts.v1.0~a.backup.failed.v1.0" } ``` ##### `404` — Alert type was not found. **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**: *`example_4`*: ```json { "domain": "AlertManager", "context": { "type": "FoobarAlert" }, "reason": "UnknownAlertType", "debug": { "msg": "Alert type is unknown" }, "code": "UnknownAlertType" } ``` ##### `401` — Request is refused because authentication parameters are invalid. **Media type**: `text/plain` - `schema` — **Type**: any **Example**: ```text 401 Authorization Required

401 Authorization Required


nginx
``` ##### `403` — A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "header": "X-Apigw-Tenant-Id" }, "reason": "TenantIDRequired", "debug": { "msg": "Tenant identifier not found" }, "code": "TenantIDRequired" } ``` ### Unregister an alert type by ID (DELETE /types/{id}) Unregisters the alert type. All alerts of this type will be disabled. #### 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::alert_manager::admin` #### Request parameters #### Responses ##### `204` — Alert type was successfully unregistered. ##### `404` — Alert type was not found. **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**: *`example_4`*: ```json { "domain": "AlertManager", "context": { "type": "FoobarAlert" }, "reason": "UnknownAlertType", "debug": { "msg": "Alert type is unknown" }, "code": "UnknownAlertType" } ``` ### Fetch resources containing the highest severity alerts (GET /resource_status) Fetches the resources' statuses that contain the alerts with the highest severity found for the resources. Resource with ID that was not found in `resourceId` parameter of any active alert considered to have the "ok" severity. This endpoint may return multiple records for the same resource if it has multiple alerts with the same severity and the same creation time. #### 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::alert_manager::viewer` #### Request parameters ##### Query parameters | Name | Description | |------|-------------| | `id` | (Optional) IDs of the resources; if omitted, the response will contain statuses for all resources that have alerts.

For resources with multiple IDs, the client must specify resource's IDs by using the `or()` operator:

* Example: `id=or(ID3,ID4,ID5)` - looks for status of a single resource

* Example: `id=ID1&id=or(ID3,ID4,ID5)&id=or(ID6,ID7)&id=ID8` - looks for status of four resources

**Type**: Array of String
**Array type description:**
**Type**: String | | `embed_alert` | (Optional) If true, the entire alert object will be included in the response.

**Type**: Boolean
**Default**: false | #### Responses ##### `200` — List of alert grouping by resource IDs. **Media type**: `application/json` - `items` — **Type**: Array of Object
**Array type description:**
**Type**: Object **Example**: ```json { "items": [ { "id": "0A0E639A-4E27-4C61-AFFF-7BE314C30A33", "severity": "critical", "alert": { "updatedAt": "2021-04-02T22:16:16.426961168Z", "tenant": { "id": "56", "locator": "/1/10/20/30/" }, "id": "01C2D69A-112B-4DE1-98AE-8688223C5F4B", "createdAt": "2021-04-02T22:16:16Z", "details": { "activity": { "id": "9C3DE32F-DCB3-4106-9988-56BFF5A64D98", "type": "8F01AC13-F59E-4851-9204-DE1FD77E36B4" } }, "category": "Backup", "receivedAt": "2021-04-01T22:16:19.71025511Z", "severity": "critical", "type": "BackupFailed" } } ] } ``` ##### `414` — Too many resource IDs. For cloud deployment there is no limitation. For on-premise deployment known limits imposed by database engine are 32766 for SQLite and 2100 for MS SQL Server. **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**: *`example_2`*: ```json { "domain": "AlertManager", "code": "badRequest", "reason": "badRequest", "debug": { "msg": "Bad request" } } ``` ##### `401` — Request is refused because authentication parameters are invalid. **Media type**: `text/plain` - `schema` — **Type**: any **Example**: ```text 401 Authorization Required

401 Authorization Required


nginx
``` ##### `403` — A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "header": "X-Apigw-Tenant-Id" }, "reason": "TenantIDRequired", "debug": { "msg": "Tenant identifier not found" }, "code": "TenantIDRequired" } ``` ### Fetch partner's customer alerts count (GET /customer_alerts_count) Fetches count of alerts per customer. This API uses extended barrier mode by default. Response does not include customers with no alerts. #### 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::alert_manager::viewer` #### Request parameters ##### Query parameters | Name | Description | |------|-------------| | `deleted_at` | (Optional) A filter by date when the alert was dismissed. Must be a Unix timestamp in nanoseconds.

Available operators:

* `eq` - equals
* `lt` - less than
* `gt` - greater than
* `le` - less than or equals
* `ge` - greater than or equals

**Type**: String
**Pattern**: `^([0-9]+)|(eq\([0-9]+\))$|(le\([0-9]+\))|(lt\([0-9]+\))|(gt\([0-9]+\))|(ge\([0-9]+\))$` | | `id` | (Optional) Case-insensitive IDs of the alerts to return in the results.

**Type**: Array of String
**Array type description:**
**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}$` | | `query` | (Optional) A text to search for within `planName` or `resourceName` fields of the alerts. The search is case-insensitive.

**Type**: String | | `severity` | (Optional) A filter by the alert severity.

Available operators:

* `eq` - equals to the specified value: eq(warning)
* `or` - equals to one of the specified values: or(warning,critical)
* `lt` - less than the specified value: lt(warning)
* `gt` - greater than the specified value: gt(warning)
* `le` - less than or equals to the specified value: le(warning)
* `ge` - greater than or equals to the specified value: ge(warning)

**Type**: String
**Allowed values**:
- `ok`
- `information`
- `warning`
- `error`
- `critical` | | `show_deleted` | (Optional) If true, dismissed alerts will be included in the response.

**Type**: Boolean
**Default**: false | | `show_deleted_only` | (Optional) If true, only dismissed alerts will be included in the response.

**Type**: Boolean
**Default**: false | | `source` | (Optional) A filter by the alert producer.

**Type**: String | | `source_time_stamp` | (Optional) A filter by timestamp that was provided by an alert producer.
The timestamp may be an arbitrary integer value.

Available operators:

* `eq` - equals
* `lt` - less than
* `gt` - greater than
* `le` - less than or equals
* `ge` - greater than or equals

**Type**: String
**Pattern**: `^([0-9]+)|(eq\([0-9]+\))$|(le\([0-9]+\))|(lt\([0-9]+\))|(gt\([0-9]+\))|(ge\([0-9]+\))$` | | `type` | (Optional) A filter by list of alert types. A list of registered types can be obtained by sending a GET request to the `/types` endpoint.

**Type**: Array of String
**Array type description:**
**Type**: String | | `updated_at` | (Optional) A filter by date when the alert was created or dismissed. Must be a Unix timestamp in nanoseconds.

Available operators:

* `eq` - equals
* `lt` - less than
* `gt` - greater than
* `le` - less than or equals
* `ge` - greater than or equals

**Type**: String
**Pattern**: `^([0-9]+)|(eq\([0-9]+\))$|(le\([0-9]+\))|(lt\([0-9]+\))|(gt\([0-9]+\))|(ge\([0-9]+\))$` | | `created_at` | (Optional) A filter by date when the alert was created. Must be a Unix timestamp in nanoseconds.

Available operators:

* `eq` - equals
* `lt` - less than
* `gt` - greater than
* `le` - less than or equals
* `ge` - greater than or equals

**Type**: String
**Pattern**: `^([0-9]+)|(eq\([0-9]+\))$|(le\([0-9]+\))|(lt\([0-9]+\))|(gt\([0-9]+\))|(ge\([0-9]+\))$` | | `category` | (Optional) A filter by list of alert categories. A list of registered categories can be obtained by sending a GET request to the `/categories` endpoint.

* Example: `category=Backup&category=Monitoring`

**Type**: Array of String
**Array type description:**
**Type**: String | | `planId` | (Optional) Case-insensitive filter for alerts with the specified plan IDs.

The following rules are applied:
* planId=BackupPlan01 - matches the exact `BackupPlan01` string in the corresponding parameter
* planId=or(BackupPlan01,BackupPlan02) - matches the exact `BackupPlan01` or `BackupPlan02` strings in the corresponding parameter

Examples: `planId=A1111&planId=B2222`
`planId=or(A1111,B2222)`

**Type**: Array of String
**Array type description:**
**Type**: String | | `resourceId` | (Optional) Case-insensitive filter for alerts with the specified resource IDs.

The following rules are applied:
* resourceId=FileResource01 - matches the exact `FileResource01` string in the corresponding parameter
* resourceId=or(FileResource01,FileResource02) - matches the exact `FileResource01` or `FileResource02` strings in the corresponding parameter

Examples: `resourceId=A1111&resourceId=B2222`
`resourceId=or(A1111,B2222)`

**Type**: Array of String
**Array type description:**
**Type**: String | | `planName` | (Optional) Case-insensitive filter for alerts with the specified plan names.

The following rules are applied:
* planName=Plan01 - matches the substring `Plan01` in the corresponding parameter
* planName=eq(BackupPlan01) - matches the exact `BackupPlan01` string in the corresponding parameter
* planName=or(BackupPlan01,BackupPlan02) - matches the exact `BackupPlan01` or `BackupPlan02` strings in the corresponding parameter

Examples: `planName=Plan1&planName=eq(BackupPlan2)`
`planName=Plan1&planName=or(BackupPlan2,BackupPlan3)`

**Type**: Array of String
**Array type description:**
**Type**: String | | `resourceName` | (Optional) Case-insensitive filter for alerts with the specified resource names.

The following rules are applied:
* resourceName=Resource01 - matches the substring `Resource01` in the corresponding parameter
* resourceName=eq(FileResource01) - matches the exact `FileResource01` string in the corresponding parameter
* resourceName=or(FileResource01,FileResource02) - matches the exact `FileResource01` or `FileResource02` strings in the corresponding parameter

Examples: `resourceName=Resource1&resourceName=eq(FileResource2)`
`resourceName=Resource1&resourceName=or(FileResource2,FileResource3)`

**Type**: Array of String
**Array type description:**
**Type**: String | #### Responses ##### `200` — List of customer alerts. **Media type**: `application/json` - `items` — **Type**: Array of Object
**Array type description:**
**Type**: Object **Example**: ```json { "items": [ { "customer_id": "14", "customer_name": "John Dow and Sons", "parents": [ "Backup Solutions Inc", "London", "John Dow and Sons" ], "alerts_count": 2 }, { "customer_id": "22", "customer_name": "Jane Smith", "parents": [ "Backup Solutions Inc", "Manchester", "Jane Smith" ], "alerts_count": 1 } ] } ``` ##### `401` — Request is refused because authentication parameters are invalid. **Media type**: `text/plain` - `schema` — **Type**: any **Example**: ```text 401 Authorization Required

401 Authorization Required


nginx
``` ##### `403` — A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "header": "X-Apigw-Tenant-Id" }, "reason": "TenantIDRequired", "debug": { "msg": "Tenant identifier not found" }, "code": "TenantIDRequired" } ``` ### Fetch alerts grouped per customer (GET /customer_alerts) Fetches alerts of the specified customers. This API uses extended barrier mode by default. #### 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::alert_manager::viewer` #### Request parameters ##### Query parameters | Name | Description | |------|-------------| | `customer_id` | (Required) IDs of the customers whose alerts must be returned.

**Type**: Array of String
**Array type description:**
**Type**: String | | `deleted_at` | (Optional) A filter by date when the alert was dismissed. Must be a Unix timestamp in nanoseconds.

Available operators:

* `eq` - equals
* `lt` - less than
* `gt` - greater than
* `le` - less than or equals
* `ge` - greater than or equals

**Type**: String
**Pattern**: `^([0-9]+)|(eq\([0-9]+\))$|(le\([0-9]+\))|(lt\([0-9]+\))|(gt\([0-9]+\))|(ge\([0-9]+\))$` | | `id` | (Optional) Case-insensitive IDs of the alerts to return in the results.

**Type**: Array of String
**Array type description:**
**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}$` | | `query` | (Optional) A text to search for within `planName` or `resourceName` fields of the alerts. The search is case-insensitive.

**Type**: String | | `severity` | (Optional) A filter by the alert severity.

Available operators:

* `eq` - equals to the specified value: eq(warning)
* `or` - equals to one of the specified values: or(warning,critical)
* `lt` - less than the specified value: lt(warning)
* `gt` - greater than the specified value: gt(warning)
* `le` - less than or equals to the specified value: le(warning)
* `ge` - greater than or equals to the specified value: ge(warning)

**Type**: String
**Allowed values**:
- `ok`
- `information`
- `warning`
- `error`
- `critical` | | `show_deleted` | (Optional) If true, dismissed alerts will be included in the response.

**Type**: Boolean
**Default**: false | | `show_deleted_only` | (Optional) If true, only dismissed alerts will be included in the response.

**Type**: Boolean
**Default**: false | | `source` | (Optional) A filter by the alert producer.

**Type**: String | | `source_time_stamp` | (Optional) A filter by timestamp that was provided by an alert producer.
The timestamp may be an arbitrary integer value.

Available operators:

* `eq` - equals
* `lt` - less than
* `gt` - greater than
* `le` - less than or equals
* `ge` - greater than or equals

**Type**: String
**Pattern**: `^([0-9]+)|(eq\([0-9]+\))$|(le\([0-9]+\))|(lt\([0-9]+\))|(gt\([0-9]+\))|(ge\([0-9]+\))$` | | `type` | (Optional) A filter by list of alert types. A list of registered types can be obtained by sending a GET request to the `/types` endpoint.

**Type**: Array of String
**Array type description:**
**Type**: String | | `updated_at` | (Optional) A filter by date when the alert was created or dismissed. Must be a Unix timestamp in nanoseconds.

Available operators:

* `eq` - equals
* `lt` - less than
* `gt` - greater than
* `le` - less than or equals
* `ge` - greater than or equals

**Type**: String
**Pattern**: `^([0-9]+)|(eq\([0-9]+\))$|(le\([0-9]+\))|(lt\([0-9]+\))|(gt\([0-9]+\))|(ge\([0-9]+\))$` | | `created_at` | (Optional) A filter by date when the alert was created. Must be a Unix timestamp in nanoseconds.

Available operators:

* `eq` - equals
* `lt` - less than
* `gt` - greater than
* `le` - less than or equals
* `ge` - greater than or equals

**Type**: String
**Pattern**: `^([0-9]+)|(eq\([0-9]+\))$|(le\([0-9]+\))|(lt\([0-9]+\))|(gt\([0-9]+\))|(ge\([0-9]+\))$` | | `category` | (Optional) A filter by list of alert categories. A list of registered categories can be obtained by sending a GET request to the `/categories` endpoint.

* Example: `category=Backup&category=Monitoring`

**Type**: Array of String
**Array type description:**
**Type**: String | | `planId` | (Optional) Case-insensitive filter for alerts with the specified plan IDs.

The following rules are applied:
* planId=BackupPlan01 - matches the exact `BackupPlan01` string in the corresponding parameter
* planId=or(BackupPlan01,BackupPlan02) - matches the exact `BackupPlan01` or `BackupPlan02` strings in the corresponding parameter

Examples: `planId=A1111&planId=B2222`
`planId=or(A1111,B2222)`

**Type**: Array of String
**Array type description:**
**Type**: String | | `resourceId` | (Optional) Case-insensitive filter for alerts with the specified resource IDs.

The following rules are applied:
* resourceId=FileResource01 - matches the exact `FileResource01` string in the corresponding parameter
* resourceId=or(FileResource01,FileResource02) - matches the exact `FileResource01` or `FileResource02` strings in the corresponding parameter

Examples: `resourceId=A1111&resourceId=B2222`
`resourceId=or(A1111,B2222)`

**Type**: Array of String
**Array type description:**
**Type**: String | | `planName` | (Optional) Case-insensitive filter for alerts with the specified plan names.

The following rules are applied:
* planName=Plan01 - matches the substring `Plan01` in the corresponding parameter
* planName=eq(BackupPlan01) - matches the exact `BackupPlan01` string in the corresponding parameter
* planName=or(BackupPlan01,BackupPlan02) - matches the exact `BackupPlan01` or `BackupPlan02` strings in the corresponding parameter

Examples: `planName=Plan1&planName=eq(BackupPlan2)`
`planName=Plan1&planName=or(BackupPlan2,BackupPlan3)`

**Type**: Array of String
**Array type description:**
**Type**: String | | `resourceName` | (Optional) Case-insensitive filter for alerts with the specified resource names.

The following rules are applied:
* resourceName=Resource01 - matches the substring `Resource01` in the corresponding parameter
* resourceName=eq(FileResource01) - matches the exact `FileResource01` string in the corresponding parameter
* resourceName=or(FileResource01,FileResource02) - matches the exact `FileResource01` or `FileResource02` strings in the corresponding parameter

Examples: `resourceName=Resource1&resourceName=eq(FileResource2)`
`resourceName=Resource1&resourceName=or(FileResource2,FileResource3)`

**Type**: Array of String
**Array type description:**
**Type**: String | #### Responses ##### `200` — List of customer alerts grouped per customer. **Media type**: `application/json` - `items` — **Type**: Array of Object
**Array type description:**
**Type**: Object **Example**: ```json { "items": [ { "customer_id": "14", "alerts": [ { "_source": "6852F263-2B5E-48BF-B78B-486182D9BDBE", "updatedAt": "2021-04-05T20:41:42.352636392Z", "tenant": { "id": "56", "locator": "/1/3/14/56/" }, "_sourceTimeStamp": 3246, "id": "01C2D69A-112B-4DE1-98AE-8688223C5F4B", "createdAt": "2021-04-05T20:41:41Z", "details": { "activity": { "id": "D028B06E-36D6-43FF-9242-35E8A9917E3A" }, "activityId": "D028B06E-36D6-43FF-9242-35E8A9917E3A" }, "category": "Backup", "receivedAt": "2021-04-01T22:16:19.71025511Z", "severity": "critical", "type": "BackupFailed" } ] }, { "customer_id": "22", "alerts": [ { "updatedAt": "2021-04-05T23:41:55.089638934Z", "tenant": { "id": "88", "locator": "/1/3/22/88" }, "id": "BACA9625-A993-4722-B03F-F2807C85E76F", "createdAt": "2021-04-05T23:41:55.089638934Z", "details": {}, "category": "Disaster recovery", "receivedAt": "2021-04-05T23:41:55.089638324Z", "severity": "warning", "type": "DrInternetTrafficUnblocked" } ] } ] } ``` ##### `401` — Request is refused because authentication parameters are invalid. **Media type**: `text/plain` - `schema` — **Type**: any **Example**: ```text 401 Authorization Required

401 Authorization Required


nginx
``` ##### `403` — A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "header": "X-Apigw-Tenant-Id" }, "reason": "TenantIDRequired", "debug": { "msg": "Tenant identifier not found" }, "code": "TenantIDRequired" } ``` ### Get count of active alerts and last modification time (GET /stats) Returns count of active alerts and last modification time. #### 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::alert_manager::viewer` #### Request parameters #### Responses ##### `200` **Media type**: `application/json` - `count` — Active alerts count.

**Type**: Integer - `modifiedAt` — Most recent alert modification time.

**Type**: String
**Pattern**: `^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+){0,1}(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$` **Example**: ```json { "count": 12044, "modifiedAt": "2022-02-20T16:42:22.270415369Z" } ``` ##### `401` — Request is refused because authentication parameters are invalid. **Media type**: `text/plain` - `schema` — **Type**: any **Example**: ```text 401 Authorization Required

401 Authorization Required


nginx
``` ##### `403` — A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "header": "X-Apigw-Tenant-Id" }, "reason": "TenantIDRequired", "debug": { "msg": "Tenant identifier not found" }, "code": "TenantIDRequired" } ``` ### Mark alert as false positive (PATCH /alerts/{id}/false_positive) Marks or unmarks alert as false positive. #### 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::alert_manager::admin` #### Request parameters ##### Request body **Media type**: `application/json` - `falsePositive` — a false positive flag value for the specified alert

**Type**: Boolean **Example**: ```json { "falsePositive": true } ``` #### Responses ##### `204` — alert successfully marked ##### `400` — Alert id or request body is invalid **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**: *`example_0`*: ```json { "domain": "AlertManager", "context": { "uuid": "26DDF2BG-8BF3-4880-AA22-E107CD66A64D" }, "reason": "InvalidUUID", "debug": { "msg": "encoding/hex: invalid byte: U+0047 'G'" }, "code": "InvalidUUID" } ``` ##### `404` — Alert was not found. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "id": "EC22CEE6-FC80-4325-A10F-7EAA5F424759" }, "reason": "AlertNotFoundById", "debug": { "msg": "Alert not found" }, "code": "AlertNotFoundById" } ``` ##### `401` — Request is refused because authentication parameters are invalid. **Media type**: `text/plain` - `schema` — **Type**: any **Example**: ```text 401 Authorization Required

401 Authorization Required


nginx
``` ##### `403` — A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. **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**: *`example_1`*: ```json { "domain": "AlertManager", "context": { "header": "X-Apigw-Tenant-Id" }, "reason": "TenantIDRequired", "debug": { "msg": "Tenant identifier not found" }, "code": "TenantIDRequired" } ```