# Alerts API **Base URL**: https://dev-cloud.acronis.com/api/alert_manager/v1 ## Endpoints ### 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 **Schema definition**: | Name | Description | |------|-------------| | `AlertTypes` | Alert payload

**Type**: Union
**May be any of**:
1. An alert that is raised if GreatHorn email security has detected a malicious email message.

**Type**: Object

2. **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


3. No backup for X days.

**Type**: Object

4. Generic alert with arbitrary payload

**Type**: Object | **Example**: ```json { "_source": "DC4A6F3B-479B-4D42-B7DD-132C56E9C76B", "context": { "planId": "00000000-0000-0000-0000-000000000000", "resourceId": "00000000-0000-0000-0000-000000000001" }, "_sourceTimeStamp": 344168, "id": "1BE7BE26-C68F-0863-2F55-DACC93A799F9", "createdAt": "2019-09-05T16:24:35.000Z", "details": { "resourceId": "E10FC321-7900-63B3-3797-8969AB0756B1", "errorMessage": { "kbLink": { "serCode": "NoBackupForXDays" } }, "planName": "Acme SQL to Cloud storage", "resourceName": "mssql://acme/khlon_afcab63a_3cf7_4b68_81ac_f71461a58b28_bureau_company7@2fe55c7d-ff5c-4477-98e8-d41c06443e46", "daysPassed": 32, "planId": "796c399a-a230-46c1-b705-31d590b9ef07" }, "type": "NoBackupForXDays" } ``` #### Responses | Code | Description | |------|-------------| | `200` | ID of the created alert. | | `400` | Alert is invalid, e.g. incompatible with the alert type definition. | | `401` | Request is refused because authentication parameters are invalid. | | `403` | A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. | ### 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 | Code | Description | |------|-------------| | `200` | List of alerts. | | `401` | Request is refused because authentication parameters are invalid. | | `403` | A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. | ### 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 | Code | Description | |------|-------------| | `204` | Alerts were successfully dismissed. | | `401` | Request is refused because authentication parameters are invalid. | | `403` | A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. | ### 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 | Code | Description | |------|-------------| | `200` | Alert has been fetched successfully. | | `400` | Invalid UUID. | | `404` | Alert was not found. | | `401` | Request is refused because authentication parameters are invalid. | | `403` | A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. | ### 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 | Code | Description | |------|-------------| | `204` | Alert was successfully dismissed. | | `400` | Invalid UUID. | | `404` | Alert was not found. | | `401` | Request is refused because authentication parameters are invalid. | | `403` | A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. | ### 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 | Code | Description | |------|-------------| | `200` | A list of categories. | | `401` | Request is refused because authentication parameters are invalid. | | `403` | A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. | ### 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 | Code | Description | |------|-------------| | `200` | Live statistics for current alerts. | | `400` | Bad request | | `401` | Request is refused because authentication parameters are invalid. | | `403` | A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. | ### 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 | Code | Description | |------|-------------| | `200` | Alert list grouped by scopes. | | `400` | 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. | | `401` | Request is refused because authentication parameters are invalid. | | `403` | A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. | ### 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 | Code | Description | |------|-------------| | `200` | A list of registered alerts types. | | `401` | Request is refused because authentication parameters are invalid. | | `403` | A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. | ### 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 **Schema definition**: | Name | Description | |------|-------------| | `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 | Code | Description | |------|-------------| | `204` | Alert types were successfully registered. | | `400` | Input parameters error. | | `401` | Request is refused because authentication parameters are invalid. | | `403` | A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. | ### 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 | Code | Description | |------|-------------| | `200` | Alert type was successfully fetched. | | `404` | Alert type was not found. | | `401` | Request is refused because authentication parameters are invalid. | | `403` | A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. | ### 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 | Code | Description | |------|-------------| | `204` | Alert type was successfully unregistered. | | `404` | Alert type was not found. | ### 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 | Code | Description | |------|-------------| | `200` | List of alert grouping by resource IDs. | | `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. | | `401` | Request is refused because authentication parameters are invalid. | | `403` | A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. | ### 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 | Code | Description | |------|-------------| | `200` | List of customer alerts. | | `401` | Request is refused because authentication parameters are invalid. | | `403` | A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. | ### 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 | Code | Description | |------|-------------| | `200` | List of customer alerts grouped per customer. | | `401` | Request is refused because authentication parameters are invalid. | | `403` | A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. | ### 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 | Code | Description | |------|-------------| | `200` | - | | `401` | Request is refused because authentication parameters are invalid. | | `403` | A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. | ### 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 **Schema definition**: | Name | Description | |------|-------------| | `falsePositive` | a false positive flag value for the specified alert

**Type**: Boolean | **Example**: ```json { "falsePositive": true } ``` #### Responses | Code | Description | |------|-------------| | `204` | alert successfully marked | | `400` | Alert id or request body is invalid | | `404` | Alert was not found. | | `401` | Request is refused because authentication parameters are invalid. | | `403` | A security error due to an issue with tenant security claim: invalid tenant in the access token, tenant resolution failed and etc. |