{
"openapi": "3.0.1",
"info": {
"title": "ilert REST API",
"description": "# Introduction\nThe ilert API is a [RESTful](https://en.wikipedia.org/wiki/Representational_state_transfer) API and provides programmatic access to entities in ilert and lets you easily integrate ilert with 3rd party tools. If you are looking to develop an inbound integration (e.g. for a monitoring tool), please use our [Events API](#tag/events). \n\nThe API supports the JSON content type for requests and responses. The response content type is requested via the HTTP Accept header (`application/json`). All resources are accessible via https and are located at `api.ilert.com/api`. \n\n You may download ilert's latest [OpenAPI.json {...} here](https://api.ilert.com/api-docs/openapi.json).\n\n If you are looking for a classic Swagger-UI view you may also open [this link](https://api.ilert.com/api-docs/swagger-ui). \n\n ## Authentication\nThe REST API accepts bearer API tokens. Each user may create API keys using the ilert web application. Note: Make sure to send the `Bearer ` prefix e.g. `Bearer APIKEY` when sending api key requests. By default, access to all resources (using any method) requires the client to be authenticated.\n\n ## Team Context\n When using API tokens, the currently selected team context of the user will not be taken into account, i.e. list results will always return all entities to which the user has a view permission. When using basic auth credentials the currently selected team context of the user will be used to filter resource results. The context may be overwritten for API key calls using the `team-context` HTTP header. Specifying `0` for ALL teams, `-1` for MY teams or a specific team id e.g. `team-context=901` to fetch results for a certain team. \n\n ## Errors\nilert uses HTTP response codes to indicate success or failure of an API request. Codes in the 2xx range indicate success, codes in the 4xx range indicate a client error (e.g. a missing required parameter) and codes in the 5xx range indicate an error with ilert's servers. In case of an error, the response body contains the following information:\n\n Attribute | Description \n ------------- | ------------- \n status | the corresponsing HTTP status code \n message | a human readable description of the error \n code | error code, used to identify error type \n\n ## API Versioning\nChanges to our API are always backwards-compatible. To get more information about our API versioning and historical changes, please take a look here.",
"version": "v2.2026.3-r.4",
"x-logo": {
"url": "./ilert-logo-spaced.png",
"backgroundColor": "#fafafa",
"altText": "ilert documentation logo"
}
},
"servers": [
{
"url": "/api"
}
],
"security": [
{
"apiKey": []
}
],
"tags": [
{
"name": "Numbers"
},
{
"name": "Integrations"
},
{
"name": "Events"
},
{
"name": "Series"
},
{
"name": "Deployment Events"
},
{
"name": "Users"
},
{
"name": "Contacts"
},
{
"name": "Notification Preferences"
},
{
"name": "Escalation Policies"
},
{
"name": "Schedules"
},
{
"name": "Alert Sources"
},
{
"name": "Heartbeat Monitors"
},
{
"name": "Alerts"
},
{
"name": "Alert Actions"
},
{
"name": "Support Hours"
},
{
"name": "Log-Entries"
},
{
"name": "Notifications"
},
{
"name": "Connectors"
},
{
"name": "Teams"
},
{
"name": "On-Calls"
},
{
"name": "Maintenance Windows"
},
{
"name": "Incident Templates"
},
{
"name": "Services"
},
{
"name": "Service Outages"
},
{
"name": "Incidents"
},
{
"name": "Metrics"
},
{
"name": "Metric Data Sources"
},
{
"name": "Status Pages"
},
{
"name": "Deployment Pipelines"
},
{
"name": "Event Flows"
},
{
"name": "Call Flows"
},
{
"name": "Call Flow Numbers"
},
{
"name": "Reports"
}
],
"paths": {
"/users/{user-id}": {
"get": {
"tags": [
"Users"
],
"summary": "Get the specified user.",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "the user object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
}
}
}
},
"put": {
"tags": [
"Users"
],
"summary": "Update an existing user.",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "the user object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
},
"required": false
},
"responses": {
"200": {
"description": "the updated user",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
}
}
},
"x-codegen-request-body-name": "user"
},
"delete": {
"tags": [
"Users"
],
"summary": "Delete the specified user.",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "if deletion was successful",
"content": {}
}
}
}
},
"/users/{user-id}/contacts/emails": {
"get": {
"tags": [
"Contacts"
],
"summary": "Get a user's emails",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ContactEmail"
}
}
}
}
}
}
},
"post": {
"tags": [
"Contacts"
],
"summary": "Create a new email",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContactEmailPost"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContactEmail"
}
}
}
}
},
"x-codegen-request-body-name": "user email contact"
}
},
"/users/{user-id}/contacts/emails/{id}": {
"get": {
"tags": [
"Contacts"
],
"summary": "Get a specific email",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContactEmail"
}
}
}
}
}
},
"put": {
"tags": [
"Contacts"
],
"summary": "Update a user's email",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContactEmailPost"
}
}
},
"required": false
},
"responses": {
"200": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContactEmail"
}
}
}
}
},
"x-codegen-request-body-name": "user email contact"
},
"delete": {
"tags": [
"Contacts"
],
"summary": "Delete the user's specified email",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "if deletion was successful",
"content": {}
}
}
}
},
"/users/{user-id}/contacts/phone-numbers": {
"get": {
"tags": [
"Contacts"
],
"summary": "Get a user's phone numbers",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ContactPhoneNumber"
}
}
}
}
}
}
},
"post": {
"tags": [
"Contacts"
],
"summary": "Create a phone number",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContactPhoneNumberPost"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContactPhoneNumber"
}
}
}
}
},
"x-codegen-request-body-name": "user phone number contact"
}
},
"/users/{user-id}/contacts/phone-numbers/{id}": {
"get": {
"tags": [
"Contacts"
],
"summary": "Get specific phone number",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContactPhoneNumber"
}
}
}
}
}
},
"put": {
"tags": [
"Contacts"
],
"summary": "Update a user's phone number",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContactPhoneNumberPost"
}
}
},
"required": false
},
"responses": {
"200": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContactPhoneNumber"
}
}
}
}
},
"x-codegen-request-body-name": "user phone number contact"
},
"delete": {
"tags": [
"Contacts"
],
"summary": "Delete the user's specified phone number",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "if deletion was successful",
"content": {}
}
}
}
},
"/users/{user-id}/notification-preferences/alerts": {
"get": {
"tags": [
"Notification Preferences"
],
"summary": "Get alert notification preferences of a user",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NotificationPreferencesAlert"
}
}
}
}
}
}
},
"post": {
"tags": [
"Notification Preferences"
],
"summary": "Create an alert notification preference",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesAlertPost"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesAlert"
}
}
}
}
},
"x-codegen-request-body-name": "alert notification preference"
}
},
"/users/{user-id}/notification-preferences/alerts/{id}": {
"get": {
"tags": [
"Notification Preferences"
],
"summary": "Get specific notification preferences alert",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesAlert"
}
}
}
}
}
},
"put": {
"tags": [
"Notification Preferences"
],
"summary": "Update a user's alert notification preference",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesAlertPost"
}
}
},
"required": false
},
"responses": {
"200": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesAlert"
}
}
}
}
},
"x-codegen-request-body-name": "alert notification preference"
},
"delete": {
"tags": [
"Notification Preferences"
],
"summary": "Delete the user's specified notification preferences alert",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "if deletion was successful",
"content": {}
}
}
}
},
"/users/{user-id}/notification-preferences/duties": {
"get": {
"tags": [
"Notification Preferences"
],
"summary": "Get duty notification preferences of a user",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NotificationPreferencesDuty"
}
}
}
}
}
}
},
"post": {
"tags": [
"Notification Preferences"
],
"summary": "Create a duty notification preference",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesDutyPost"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesDuty"
}
}
}
}
},
"x-codegen-request-body-name": "duty notification preference"
}
},
"/users/{user-id}/notification-preferences/duties/{id}": {
"get": {
"tags": [
"Notification Preferences"
],
"summary": "Get specific notification preferences duty",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesDuty"
}
}
}
}
}
},
"put": {
"tags": [
"Notification Preferences"
],
"summary": "Update a user's duty notification preference",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesDutyPost"
}
}
},
"required": false
},
"responses": {
"200": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesDuty"
}
}
}
}
},
"x-codegen-request-body-name": "duty notification preference"
},
"delete": {
"tags": [
"Notification Preferences"
],
"summary": "Delete the user's specified notification preferences duty",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "if deletion was successful",
"content": {}
}
}
}
},
"/users/{user-id}/notification-preferences/updates": {
"get": {
"tags": [
"Notification Preferences"
],
"summary": "Get update notification preferences of a user",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NotificationPreferencesUpdate"
}
}
}
}
}
}
},
"post": {
"tags": [
"Notification Preferences"
],
"summary": "Create an update notification preference",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesUpdatePost"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesUpdate"
}
}
}
}
},
"x-codegen-request-body-name": "update notification preference"
}
},
"/users/{user-id}/notification-preferences/updates/{id}": {
"get": {
"tags": [
"Notification Preferences"
],
"summary": "Get specific notification preferences update",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesUpdate"
}
}
}
}
}
},
"put": {
"tags": [
"Notification Preferences"
],
"summary": "Update a user's update notification preference",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesUpdatePost"
}
}
},
"required": false
},
"responses": {
"200": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesUpdate"
}
}
}
}
},
"x-codegen-request-body-name": "update notification preference"
},
"delete": {
"tags": [
"Notification Preferences"
],
"summary": "Delete the user's specified notification preferences update",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "if deletion was successful",
"content": {}
}
}
}
},
"/users/{user-id}/notification-preferences/subscriptions": {
"get": {
"tags": [
"Notification Preferences"
],
"summary": "Get subscription notification preferences of a user",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NotificationPreferencesSubscription"
}
}
}
}
}
}
},
"post": {
"tags": [
"Notification Preferences"
],
"summary": "Create a subscription notification preference",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesSubscriptionPost"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesSubscription"
}
}
}
}
},
"x-codegen-request-body-name": "subscription notification preference"
}
},
"/users/{user-id}/notification-preferences/subscriptions/{id}": {
"get": {
"tags": [
"Notification Preferences"
],
"summary": "Get specific notification preferences subscription",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesSubscription"
}
}
}
}
}
},
"put": {
"tags": [
"Notification Preferences"
],
"summary": "Update a user's subscription notification preference",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesSubscriptionPost"
}
}
},
"required": false
},
"responses": {
"200": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationPreferencesSubscription"
}
}
}
}
},
"x-codegen-request-body-name": "subscription notification preference"
},
"delete": {
"tags": [
"Notification Preferences"
],
"summary": "Delete the user's specified notification preferences subscription",
"parameters": [
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "if deletion was successful",
"content": {}
}
}
}
},
"/numbers": {
"get": {
"tags": [
"Numbers"
],
"summary": "List available phone numbers that ilert uses to send voice and SMS notifications",
"responses": {
"200": {
"description": "List of phone numbers",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OutboundNumber"
}
}
}
}
}
},
"security": []
}
},
"/integrations": {
"get": {
"tags": [
"Integrations"
],
"summary": "List available inbound and outbound integrations. Note: this resource is paginated.",
"parameters": [
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of entities.",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 50
}
}
],
"responses": {
"200": {
"description": "list of integrations",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Integration"
}
}
}
}
}
},
"security": []
}
},
"/users": {
"get": {
"tags": [
"Users"
],
"summary": "List existing users.",
"parameters": [
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of entities.",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 50
}
}
],
"responses": {
"200": {
"description": "list of users",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/User"
}
}
}
}
}
}
},
"post": {
"tags": [
"Users"
],
"summary": "Create a new user. Requires ADMIN privileges.",
"parameters": [
{
"name": "send-no-invitation",
"in": "query",
"description": "Provide ?send-no-invitation=true if you do not wish to send an invitation email.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"description": "**Sample request**\n\n```json\nRequest URL: https://api.ilert.com/api/users\n\n{\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"email\": \"john@acme.com\",\n \"position\": \"Software Engineer\",\n}\n```\n\n**Response**\n\n````json\n{\n \"id\": 2188373,\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"email\": \"john@acme.com\",\n \"position\": \"Software Engineer\",\n \"timezone\": \"Europe/Berlin\",\n \"language\": \"de\",\n \"role\": \"RESPONDER\",\n }\n````\n",
"requestBody": {
"description": "the user object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserPost"
}
}
},
"required": false
},
"responses": {
"201": {
"description": "Created. The URI of the created user entity is included in the Location header and the user object is included in the body.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
}
}
},
"x-codegen-request-body-name": "user"
}
},
"/users/search-email": {
"post": {
"tags": [
"Users"
],
"summary": "Find a user by email address.",
"description": "Search for a user by their email address within the scope of the current account. This endpoint uses POST instead of GET to prevent email addresses from being exposed in URLs, server access logs, and browser history.",
"requestBody": {
"description": "the email to search for",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"description": "the email address of the user to find"
}
}
}
}
},
"required": true
},
"responses": {
"200": {
"description": "the matching user object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
}
},
"404": {
"description": "no user found with the given email address"
}
}
}
},
"/users/current": {
"get": {
"tags": [
"Users"
],
"summary": "Get the currently authenticated user.",
"responses": {
"200": {
"description": "user object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
}
}
}
},
"put": {
"tags": [
"Users"
],
"summary": "Update the current user.",
"requestBody": {
"description": "user object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserPost"
}
}
},
"required": false
},
"responses": {
"200": {
"description": "the updated user",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
}
}
},
"x-codegen-request-body-name": "user"
}
},
"/alerts": {
"get": {
"tags": [
"Alerts"
],
"summary": "List alerts (optionally matching certain criteria that are specified by query parameters).",
"description": "**Sample URLs**\n* List only alerts that are either in state `PENDING` or `ACCEPTED`:
https://api.ilert.com/api/alerts?states=PENDING&states=ACCEPTED\n* List only alerts that belong to the alert source with ID `1243` or `1743` and where user `jd` is a responder:
\n https://api.ilert.com/api/alerts?sources=1243&sources=1743&responders=jd\n* Paginate first batch for a range of alerts (note: query parameters should be url encoded):
\n https://api.ilert.com/api/alerts?start-index=0&max-results=100&from=2021-03-01T21:24:56.771Z&until=2021-04-01T21:24:56.771Z\n* Fetch next page, assuming equal to max-results were returned:
\n https://api.ilert.com/api/alerts?start-index=100&max-results=100&from=2021-03-01T21:24:56.771Z&until=2021-04-01T21:24:56.771Z\n* Pagination should be done based on the `reportTime` field using the parameters `from` and `until` as well as `start-index`. When building a local alert state store the `id` field should be used as identifier. The `alertKey` field is not suitable for this, as it is used to group related alerts to each other.",
"parameters": [
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of entities.",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 50
}
},
{
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response. You may declare multiple. (nextEscalationUser)",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"nextEscalationUser"
]
}
}
},
{
"name": "states",
"in": "query",
"description": "state of the alert",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"PENDING",
"ACCEPTED",
"RESOLVED"
]
}
}
},
{
"name": "sources",
"in": "query",
"description": "alert source IDs of the alert's alert source",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
}
}
},
{
"name": "policies",
"in": "query",
"description": "escalation policy IDs of the alert's escalation policy",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
}
}
},
{
"name": "responders",
"in": "query",
"description": "user ids of the user that is a responder of the alert",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "from",
"in": "query",
"description": "from date, ISO-UTC e.g. 2021-05-25T21:24:56.771Z, based on reportTime",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "until",
"in": "query",
"description": "until date, ISO-UTC e.g. 2021-05-26T21:24:56.771Z, based on reportTime",
"schema": {
"type": "string",
"format": "date-time"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Alert"
}
}
}
}
}
}
},
"post": {
"tags": [
"Alerts"
],
"summary": "Create alerts with customised parameters without requiring events from monitoring tools that use our Events API.",
"description": "ATTENTION: do not use this endpoint to create monitoring related (or high volumes of) alerts, use '/api/events' instead, you have been warned! Escalation of the alert will be based on the alert source's escalation policy or may be overridden by providing a specific escalation policy or lastly specific set of responders (users), latter will only notify the user(s) and will not escalate any further.",
"requestBody": {
"description": "the alert",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ManualAlert"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "the created and freshly escalated alert",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Alert"
}
}
}
}
},
"x-codegen-request-body-name": "alert"
}
},
"/alerts/count": {
"get": {
"tags": [
"Alerts"
],
"summary": "Get the alert count matching the specified criteria.",
"parameters": [
{
"name": "states",
"in": "query",
"description": "state of the alert",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"PENDING",
"ACCEPTED",
"RESOLVED"
]
}
}
},
{
"name": "sources",
"in": "query",
"description": "alert source IDs of the alert's alert source",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
}
}
},
{
"name": "responders",
"in": "query",
"description": "user ids of the user that is a responder of the alert",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "from",
"in": "query",
"description": "from date",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "until",
"in": "query",
"description": "until date",
"schema": {
"type": "string",
"format": "date-time"
}
}
],
"responses": {
"200": {
"description": "the number of alerts matching the specified criteria",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CountResponse"
}
}
}
}
}
}
},
"/alerts/{id}": {
"get": {
"tags": [
"Alerts"
],
"summary": "Get the alert with the specified id.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response. You may declare multiple. (escalationRules, nextEscalationUser)",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"escalationRules",
"nextEscalationUser"
]
}
}
}
],
"responses": {
"200": {
"description": "alert object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Alert"
}
}
}
}
}
}
},
"/alerts/{id}/suggested-responders": {
"get": {
"tags": [
"Alerts"
],
"summary": "Get available (assignable) responders for the alert with the specified id.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "lang",
"in": "query",
"description": "locale for response text eg. 'en' or 'de'",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "the list of alert responders",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SuggestedResponder"
}
}
}
}
}
}
}
},
"/alerts/{id}/responders": {
"post": {
"tags": [
"Alerts"
],
"summary": "Add an additional responder to the alert.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"201": {
"description": "the created alert responder object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AlertResponder"
}
}
}
},
"404": {
"description": "Responder did not exist",
"content": {}
},
"405": {
"description": "Responder is already present on the alert",
"content": {}
}
}
}
},
"/alerts/{id}/responders/{user-id}": {
"delete": {
"tags": [
"Alerts"
],
"summary": "Remove a responder from the alert.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Responder has been removed",
"content": {}
},
"404": {
"description": "Responder did not exist",
"content": {}
}
}
}
},
"/alerts/{id}/assign": {
"put": {
"tags": [
"Alerts"
],
"summary": "Assign the alert.",
"description": "Either provide a user-id, policy-id (escalation policy) or schedule-id (on-call schedule) that the specific alert should be assigned to.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "user",
"in": "query",
"description": "numeric user id",
"schema": {
"type": "string"
}
},
{
"name": "policy",
"in": "query",
"description": "numeric policy id",
"schema": {
"type": "string"
}
},
{
"name": "schedule",
"in": "query",
"description": "numeric schedule id",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "the updated alert object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Alert"
}
}
}
}
}
}
},
"/alerts/{id}/accept": {
"put": {
"tags": [
"Alerts"
],
"summary": "Accept the Alert.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "the updated alert object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Alert"
}
}
}
}
}
}
},
"/alerts/{id}/resolve": {
"put": {
"tags": [
"Alerts"
],
"summary": "Resolve the alert.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "the updated alert object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Alert"
}
}
}
}
}
}
},
"/alerts/{id}/notifications": {
"get": {
"tags": [
"Alerts",
"Notifications"
],
"summary": "Get notifications for the specified alert.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "a list of notification objects",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Notification"
}
}
}
}
}
}
}
},
"/alerts/{id}/log-entries": {
"get": {
"tags": [
"Alerts",
"Log-Entries"
],
"summary": "Get log entries for the specified alert.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "lang",
"in": "query",
"description": "log entry language",
"schema": {
"type": "string",
"enum": [
"en",
"de"
]
}
},
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of entities.",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 50
}
},
{
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response. You may declare multiple. (vars)",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"vars"
]
}
}
},
{
"name": "filter-types",
"in": "query",
"description": "filter-type (group) of the log",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"NOTIFICATIONS",
"ALERT_SOURCE_EVENTS",
"CALL_ROUTING_EVENTS",
"ALERT_UPDATES",
"CONNECTOR_EVENTS",
"INCIDENT_COMMUNICATIONS"
]
}
}
}
],
"responses": {
"200": {
"description": "list of log entries",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LogEntry"
}
}
}
}
}
}
}
},
"/alerts/{id}/actions": {
"get": {
"tags": [
"Alert Actions"
],
"summary": "Get available actions for specified alert.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "list of alert actions",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AlertActionTrigger"
}
}
}
}
}
},
"post": {
"tags": [
"Alert Actions"
],
"summary": "Invoke a specific alert action.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "the alert action, you might skip the 'history' field",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AlertActionTrigger"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "the alert action result, validate the 'success' field",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AlertActionResult"
}
}
}
}
},
"x-codegen-request-body-name": "alert-action"
}
},
"/schedules": {
"get": {
"tags": [
"Schedules"
],
"summary": "List on-call schedules.",
"parameters": [
{
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response. You may declare multiple. (currentShift, nextShift, scheduleLayers [only available for RECURRING schedules], shifts [only available for STATIC schedules], past [show shifts in the past, only for STATIC])",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"scheduleLayers",
"shifts",
"currentShift",
"nextShift",
"past"
]
}
}
},
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of schedules.",
"schema": {
"maximum": 20,
"type": "integer",
"format": "int32",
"default": 20
}
}
],
"responses": {
"200": {
"description": "a list of on-call schedules",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Schedule"
}
}
}
}
}
}
},
"post": {
"tags": [
"Schedules"
],
"summary": "Create a new on-call schedule.",
"parameters": [
{
"name": "abort-on-gaps",
"in": "query",
"description": "Used for static schedules to prevent creating schedules with gaps",
"schema": {
"type": "boolean"
}
}
],
"requestBody": {
"description": "The on-call schedule. (scheduleLayers [only available for RECURRING schedules], shifts [only available for STATIC schedules])",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Schedule"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "The created on-call schedule",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Schedule"
}
}
}
}
},
"x-codegen-request-body-name": "schedule"
}
},
"/schedules/{id}": {
"get": {
"tags": [
"Schedules"
],
"summary": "Get the on-call schedule with the specified id.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response. You may declare multiple. (currentShift, nextShift, scheduleLayers [only available for RECURRING schedules], shifts [only available for STATIC schedules], past [show shifts in the past, only for STATIC])",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"scheduleLayers",
"shifts",
"currentShift",
"nextShift",
"past"
]
}
}
}
],
"responses": {
"200": {
"description": "The schedule object. (scheduleLayers [only available for RECURRING schedules], shifts [only available for STATIC schedules])",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Schedule"
}
}
}
}
}
},
"put": {
"tags": [
"Schedules"
],
"summary": "Update an on-call schedule.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "abort-on-gaps",
"in": "query",
"description": "Used for static schedules to prevent updating schedules with gaps",
"schema": {
"type": "boolean"
}
}
],
"requestBody": {
"description": "The on-call schedule. (scheduleLayers [only available for RECURRING schedules], shifts [only available for STATIC schedules])",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Schedule"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The updated on-call schedule",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Schedule"
}
}
}
}
},
"x-codegen-request-body-name": "schedule"
},
"delete": {
"tags": [
"Schedules"
],
"summary": "Delete the on-call schedule with the specified id.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "empty response",
"content": {}
}
}
}
},
"/schedules/{id}/shifts": {
"get": {
"tags": [
"Schedules"
],
"summary": "Get shifts for the specified schedule and date range.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "from",
"in": "query",
"description": "from date, default is start of last month",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "until",
"in": "query",
"description": "until date, default is from date plus 3 months",
"schema": {
"type": "string"
}
},
{
"name": "exclude-overrides",
"in": "query",
"description": "if true, shifts won't include overrides",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"200": {
"description": "the shift objects",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Shift"
}
}
}
}
}
}
}
},
"/schedules/{id}/overrides": {
"get": {
"tags": [
"Schedules"
],
"summary": "Get overrides for the specified schedule.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "the shift objects",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Shift"
}
}
}
}
}
}
},
"put": {
"tags": [
"Schedules"
],
"summary": "Add an override shift to a schedule.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "the shift which should overwrite the schedule (must not be in the past)",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Shift"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "the overwritten schedule object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ScheduleRel"
}
}
}
}
},
"x-codegen-request-body-name": "shift"
}
},
"/schedules/{id}/user-on-call": {
"get": {
"tags": [
"Schedules"
],
"summary": "Get the user (wrapped in a shift object) on-call for the specified schedule.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "the current shift",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Shift"
}
}
}
},
"204": {
"description": "if no user is on-call",
"content": {}
}
}
}
},
"/on-calls": {
"get": {
"tags": [
"On-Calls"
],
"summary": "List on-calls with flexible filters",
"parameters": [
{
"name": "policies",
"in": "query",
"description": "escalation policy ids to filter on call duties for",
"schema": {
"type": "number"
}
},
{
"name": "policy-levels",
"in": "query",
"description": "can be provided instead of 'policies', must be a serialised and urlencoded JSON object e.g. ?policy-levels=\"{ \"id\": 12, \"level\": 1 }\" where id is the policy id and level is the escalation level that should be included",
"schema": {
"type": "string"
}
},
{
"name": "schedules",
"in": "query",
"description": "on call schedule ids to filter on call duties for",
"schema": {
"type": "number"
}
},
{
"name": "users",
"in": "query",
"description": "user ids to filter on call duties for",
"schema": {
"type": "number"
}
},
{
"name": "expand",
"in": "query",
"description": "include full entities for: policy, escalationPolicy or user",
"schema": {
"type": "string"
}
},
{
"name": "from",
"in": "query",
"description": "date-time ISO-UTC e.g. 2021-05-25T21:24:56.771Z, start of the time range, may not exceed 3 months in total span, defaults to current time",
"schema": {
"type": "string"
}
},
{
"name": "until",
"in": "query",
"description": "date-time ISO-UTC e.g. 2021-05-25T21:24:56.771Z, end of the time range, must be after 'from', defaults to current time",
"schema": {
"type": "string"
}
},
{
"name": "timezone",
"in": "query",
"description": "Time zone in which the results will be rendered, defaults to UTC",
"schema": {
"type": "string"
}
},
{
"name": "start-index",
"in": "query",
"description": "offset for the search results, defaults to 0",
"schema": {
"type": "number"
}
},
{
"name": "max-results",
"in": "query",
"description": "limit for the search results, defaults to 50, may not exceed 250",
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "returns a list of on-call objects for the searched window",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OnCall"
}
}
}
}
}
}
}
},
"/alert-sources": {
"get": {
"tags": [
"Alert Sources"
],
"summary": "List alert sources.",
"parameters": [
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of alert sources.",
"schema": {
"maximum": 50,
"type": "integer",
"format": "int32",
"default": 50
}
}
],
"responses": {
"200": {
"description": "the alert source object",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AlertSourceNoIncludes"
}
}
}
}
}
}
},
"post": {
"tags": [
"Alert Sources"
],
"summary": "Create a new alert source.",
"requestBody": {
"description": "the alert source",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AlertSourceRel"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "The URI of the alert source will be included in the location header and the alert source will be included in the body.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AlertSource"
}
}
}
}
},
"x-codegen-request-body-name": "alert-source"
}
},
"/alert-sources/{id}": {
"get": {
"tags": [
"Alert Sources"
],
"summary": "Get the alert source with specified id or alternatively integration key.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "numeric source id or integration key",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response. You may declare multiple. (detailsTemplate, summaryTemplate, routingTemplate, linkTemplates, priorityTemplate, textTemplate, eventFilter, alertKeyTemplate, eventTypeFilterCreate, eventTypeFilterAccept, eventTypeFilterResolve); some may not work in lists; may be used for POST and PUT as well.",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"detailsTemplate",
"summaryTemplate",
"routingTemplate",
"alertKeyTemplate",
"linkTemplates",
"priorityTemplate",
"textTemplate",
"eventFilter",
"eventTypeFilterCreate",
"eventTypeFilterAccept",
"eventTypeFilterResolve"
]
}
}
}
],
"responses": {
"200": {
"description": "the alert source object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AlertSource"
}
}
}
}
}
},
"put": {
"tags": [
"Alert Sources"
],
"summary": "Update an existing alert source.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "the alert source",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AlertSourceRel"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "the updated alert source object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AlertSource"
}
}
}
}
},
"x-codegen-request-body-name": "alert-source"
},
"delete": {
"tags": [
"Alert Sources"
],
"summary": "Delete the specified alert source.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "if deletion was successful",
"content": {}
}
}
}
},
"/heartbeat-monitors": {
"get": {
"tags": [
"Heartbeat Monitors"
],
"summary": "List heartbeat monitors.",
"description": "This resource uses a 'cursor' to paginate. 'start-index' has no effect here.",
"parameters": [
{
"name": "cursor",
"in": "query",
"description": "A cursor identifying the current position in the pagination, leave empty to start at the first item, each call returns a 'next-cursor' header for the next page, do not alter the cursor yourself.",
"schema": {
"type": "string",
"default": null
}
},
{
"name": "max-results",
"in": "query",
"description": "The maximum number of results when paging through a list of heartbeat monitors.",
"schema": {
"maximum": 200,
"type": "integer",
"format": "int32",
"default": 100
}
},
{
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response. You may declare multiple. (integrationKey, integrationUrl)",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"integrationKey",
"integrationUrl"
]
}
}
}
],
"responses": {
"200": {
"description": "The heartbeat monitor objects",
"headers": {
"next-cursor": {
"schema": {
"description": "The cursor value for the next page, do not alter this yourself. Provide it as is to the ?cursor=${cursor} query param.",
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/HeartbeatMonitorNoIncludes"
}
}
}
}
}
}
},
"post": {
"tags": [
"Heartbeat Monitors"
],
"summary": "Create a new heartbeat monitor.",
"description": "The 'integrationKey' field cannot be set as it is generated automatically. Note: if you are building installation scripts for your hosts, you may send deterministic names and ?include=integrationUrl to still return the 'response.body.integrationUrl' field on 409 (already existing resource) conflict responses. This allows you to run installations with a simple single POST request.",
"parameters": [
{
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response. You may declare multiple. (alertSource (default), integrationKey (default), integrationUrl)",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"integrationKey",
"integrationUrl",
"alertSource"
]
}
}
}
],
"requestBody": {
"description": "the heartbeat monitor",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HeartbeatMonitorRel"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Your newly created heartbeat monitor",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HeartbeatMonitor"
}
}
}
},
"409": {
"description": "A heartbeat monitor with this name already exists, this resource will return the details of the already existing heartbeat monitor.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HeartbeatMonitor"
}
}
}
}
}
}
},
"/heartbeat-monitors/{id}": {
"get": {
"tags": [
"Heartbeat Monitors"
],
"summary": "Get the heartbeat monitor with specified id.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "numeric entity id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response. You may declare multiple. (integrationKey (default), integrationUrl, alertSource (default)); alertSource does not work in lists; may be used for POST and PUT as well.",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"integrationKey",
"integrationUrl",
"alertSource"
]
}
}
}
],
"responses": {
"200": {
"description": "the heartbeat monitor object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HeartbeatMonitor"
}
}
}
}
}
},
"put": {
"tags": [
"Heartbeat Monitors"
],
"summary": "Update an existing heartbeat monitor.",
"description": "ATTENTION: changing 'intervalSec' will regenerate the 'integrationKey', you will have to update your monitoring integrations.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "the heartbeat monitor",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HeartbeatMonitorRel"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "the updated heartbeat monitor object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HeartbeatMonitor"
}
}
}
}
}
},
"delete": {
"tags": [
"Heartbeat Monitors"
],
"summary": "Delete the specified heartbeat monitor.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "if deletion was successful",
"content": {}
}
}
}
},
"/support-hours": {
"get": {
"tags": [
"Support Hours"
],
"summary": "List support hours.",
"description": "Returns a shallow list of support hours without exception details. Use the single resource endpoint to retrieve the complete support hour including all exceptions.",
"parameters": [
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of support hours.",
"schema": {
"maximum": 50,
"type": "integer",
"format": "int32",
"default": 50
}
}
],
"responses": {
"200": {
"description": "list of support hours",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SupportHourListItem"
}
}
}
}
}
}
},
"post": {
"tags": [
"Support Hours"
],
"summary": "Create a new support hour.",
"requestBody": {
"description": "the support hour",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SupportHour"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "the response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SupportHour"
}
}
}
}
},
"x-codegen-request-body-name": "support-hour"
}
},
"/support-hours/{id}": {
"get": {
"tags": [
"Support Hours"
],
"summary": "Get the support hour with specified id.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "the support hour object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SupportHour"
}
}
}
}
}
},
"put": {
"tags": [
"Support Hours"
],
"summary": "Update an existing support hour.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "the support hour",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SupportHour"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "the updated support hour object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SupportHour"
}
}
}
}
},
"x-codegen-request-body-name": "support-hour"
},
"delete": {
"tags": [
"Support Hours"
],
"summary": "Delete the specified support hour.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "if deletion was successful",
"content": {}
}
}
}
},
"/maintenance-windows": {
"get": {
"tags": [
"Maintenance Windows"
],
"summary": "List maintenance windows.",
"parameters": [
{
"name": "state",
"in": "query",
"description": "Filter maintenance windows by state. `OPEN` includes upcoming and ongoing windows, `CLOSED` includes past windows.",
"schema": {
"type": "string",
"enum": [
"OPEN",
"CLOSED"
]
}
},
{
"name": "services",
"in": "query",
"description": "filter by service IDs",
"schema": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
}
}
},
{
"name": "sources",
"in": "query",
"description": "filter by alert source IDs",
"schema": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
}
}
},
{
"name": "from",
"in": "query",
"description": "from date, ISO-UTC e.g. 2021-05-25T21:24:56.771Z",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "until",
"in": "query",
"description": "until date, ISO-UTC e.g. 2021-05-26T21:24:56.771Z",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of entities.",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 50
}
}
],
"responses": {
"200": {
"description": "the maintenance window object",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MaintenanceWindow"
}
}
}
}
}
}
},
"post": {
"tags": [
"Maintenance Windows"
],
"summary": "Create a new maintenance window.",
"requestBody": {
"description": "the maintenance window",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MaintenanceWindow"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The URI of the maintenance window will be included in the location header and the maintenance window will be included in the body.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MaintenanceWindow"
}
}
}
}
},
"x-codegen-request-body-name": "maintenance-window"
}
},
"/maintenance-windows/{id}": {
"get": {
"tags": [
"Maintenance Windows"
],
"summary": "Get the maintenance window with specified id.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "the maintenance window object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MaintenanceWindow"
}
}
}
}
}
},
"put": {
"tags": [
"Maintenance Windows"
],
"summary": "Update an existing maintenance window.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "the maintenance window",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MaintenanceWindow"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "the updated maintenance window object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MaintenanceWindow"
}
}
}
}
},
"x-codegen-request-body-name": "maintenance-window"
},
"delete": {
"tags": [
"Maintenance Windows"
],
"summary": "Delete the specified maintenance window.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "if deletion was successful",
"content": {}
}
}
}
},
"/escalation-policies": {
"get": {
"tags": [
"Escalation Policies"
],
"summary": "List escalation policies.",
"parameters": [
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of escalation policies.",
"schema": {
"maximum": 50,
"type": "integer",
"format": "int32",
"default": 50
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EscalationPolicy"
}
}
}
}
}
}
},
"post": {
"tags": [
"Escalation Policies"
],
"summary": "Create a new escalation policy.",
"requestBody": {
"description": "the escalation polocy",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EscalationPolicy"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Created. The URI of the escalation policy is included in the Location header and the entity in the body",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EscalationPolicy"
}
}
}
}
},
"x-codegen-request-body-name": "escalation-policy"
}
},
"/escalation-policies/resolve": {
"get": {
"tags": [
"Escalation Policies"
],
"summary": "Resolve an escalation policy by routing key.",
"parameters": [
{
"name": "routing-key",
"in": "query",
"description": "routing key expression used to resolve the escalation policy, including ordered comma-separated keys or the special il:{...} policy reference format.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "The resolved escalation policy",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EscalationPolicy"
}
}
}
},
"403": {
"description": "The current user has no permission to access the resolved escalation policy",
"content": {}
},
"404": {
"description": "No escalation policy matched the provided routing key",
"content": {}
}
}
}
},
"/escalation-policies/{id}": {
"get": {
"tags": [
"Escalation Policies"
],
"summary": "Get escalation policy with the specified id.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EscalationPolicy"
}
}
}
}
}
},
"put": {
"tags": [
"Escalation Policies"
],
"summary": "Update an existing escalation policy.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "the escalation policy",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EscalationPolicy"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The updated escalation policy",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EscalationPolicy"
}
}
}
}
},
"x-codegen-request-body-name": "escalation-policy"
},
"delete": {
"tags": [
"Escalation Policies"
],
"summary": "Delete the specified escalation policy.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "if deletion was successful",
"content": {}
}
}
}
},
"/escalation-policies/{id}/levels/{level}": {
"put": {
"tags": [
"Escalation Policies"
],
"summary": "Replace an escalation rule at the specified level.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "level",
"in": "path",
"description": "zero-based escalation level",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"description": "the escalation rule",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EscalationRule"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The updated escalation rule",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EscalationRule"
}
}
}
}
},
"x-codegen-request-body-name": "escalation-rule"
}
},
"/series/{key}": {
"post": {
"tags": [
"Series"
],
"summary": "Ingest a series for a metric",
"description": "Post a time point or multiple time points (series) to a metric. User authorization is not required instead provide the integration key of your metric.",
"parameters": [
{
"name": "key",
"in": "path",
"description": "integration key of resource",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "the time point or series of time points",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SeriesOption"
}
}
},
"required": true
},
"responses": {
"202": {
"description": "The time points have been accepted",
"content": {}
}
},
"security": [],
"x-codegen-request-body-name": "series"
}
},
"/events": {
"post": {
"tags": [
"Events"
],
"summary": "Post an event to ilert.",
"description": "Use the Event API to integrate your monitoring or ticketing tools with ilert. It provides a single API endpoint that allows you to create, accept and resolve alerts in ilert. It is designed around the notion that monitoring tools send events when \n* a problem occurs (an `ALERT` event in ilert terminology)\n* a problem is acknowledged, indicating that someone is working on the resolution of the problem (an `ACCEPT`event)\n* a problem is resolved (a `RESOLVED`event)\n\nThe API accepts these events, routes them to the alert source to which the integration key belongs, and takes appropriate action.\n\nAn event object contains the following attributes:\n\nAttribute | Description \n------------- | ------------- \nintegrationKey | **Required**. The integration key of the alert source. \neventType | **Required**. Must be either `ALERT`, `ACCEPT`, or `RESOLVE`\nsummary | **Required**. The event summary. Will be used as the alert summary if a new alert is created.\ndetails | Optional. The event details. Will be used as the alert details if a new alert is created.\nalertKey | Optional. For `ALERT` events, the alertKey can be used to deduplicate or group events. If an open alert with the key already exists, the event will be appended to the alert's event log. Otherwise a new alert will be created. For `ACCEPT` and `RESOLVE` events, the alertKey is used to reference the open alert which is to be accepted or resolved by this event.\npriority | Optional. Must be either HIGH or LOW. Will overwrite the evaluated priority of the alert source.\nseverity | Optional. Must be an integer in range 1..5. Will overwrite the evaluated severity of the alert source.\nservices | Optional. A list of service objects, each containing an `alias`.\nlabels | Optional. A map of key/value labels attached to the alert.\nimages | Optional. A list of images containing src, href and alt.\nlinks | Optional. A list of links, containing href and text.\ncustomDetails | Optional. Additional custom details for the event.\nroutingKey | Optional. Overwrite escalation policy for ALERT events.\n\n\n### Getting started\nBefore you can start making API requests, you need to create an API alert source in the ilert web interface:\n1. Go to \"Alert sources\"\n2. Click on \"Add a new alert source\"\n3. Fill out the form chosing \"API\" as the integration type and save.\n\nAn integration key will be generated for the alert source after creation. You can obtain the key on the alert sources' details page. You can only use the key to post events to this alert source and you don't need to provide any other credentials when using the Event API.\n\n### Example: create, accept and resolve an alert\nThe following example will guide you through a basic workflow where an alert is created, accepted, and resolved.\n\n#### Create alert\nAn alert can be created by posting an `ALERT` event:\n\n**Request**\n```json\nhttps://api.ilert.com/api/events\n\n{\n \"integrationKey\": \"edf0235f-a720-458e-a7fd-6b001042a4f4\",\n \"eventType\": \"ALERT\",\n \"alertKey\": \"srv/mail01\",\n \"summary\": \"Host srv/mail01 is CRITICAL\"\n}\n```\n\nLet's say we want to post an update saying that the host is down. To do that, we will post another `ALERT` event using the same alertKey:\n\n**Request**\n```json\nhttps://api.ilert.com/api/events\n\n{\n \"integrationKey\": \"edf0235f-a720-458e-a7fd-6b001042a4f4\",\n \"eventType\": \"ALERT\",\n \"alertKey\": \"srv/mail01\",\n \"summary\": \"Host srv/mail01 is DOWN\"\n}\n```\n\n#### Accept an alert\nContinuing our example from above, we want to accept the alert that we created. In order to that, we post an `ACCEPT`event using the same alertKey that we used when we posted the `ALERT` event.\n\n**Request**\n```json\nhttps://api.ilert.com/api/events\n\n{\n \"integrationKey\": \"edf0235f-a720-458e-a7fd-6b001042a4f4\",\n \"eventType\": \"ACCEPT\",\n \"alertKey\": \"srv/mail01\"\n}\n```\n\nThe alert is now in ACCEPTED state stopping any further notifications.\n\n#### Resolve an alert\nTo resolve the alert, we simply post a `RESOLVE` event using the alert key from above.\n\n**Request**\n```json\nhttps://api.ilert.com/api/events\n\n{\n \"integrationKey\": \"edf0235f-a720-458e-a7fd-6b001042a4f4\",\n \"eventType\": \"RESOLVE\",\n \"alertKey\": \"srv/mail01\"\n}\n```\n\nThe alert is now resolved.\n\n\n\n### Dealing with errors and retries\nWe strongly recommend to implement a retry logic on the client side if an error occurs (ideally using an [exponential backoff](https://en.wikipedia.org/wiki/Exponential_backoff)). \n\nRetry a failed request for the following errors:\n* any network errors\n* 5xx errors: this indicates an error in ilert\n* 429 Too Many Requests: you have reached your rate limit\n\n\nDo NOT retry a request for the following HTTP response codes:\n* 202 Accepted: the request was successful\n* 400 Bad Request: (check the error message for details)\n",
"requestBody": {
"description": "The event",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Event"
}
}
},
"required": true
},
"responses": {
"202": {
"description": "The event has been accepted",
"content": {}
}
},
"security": [],
"x-codegen-request-body-name": "event"
}
},
"/deployment-events": {
"post": {
"tags": [
"Deployment Events"
],
"summary": "Post a deployment event to ilert.",
"description": "Use the Deployment events API to integrate your CI & CD tools or custom deployment workflows with ilert. Create a new deployment pipeline to generate an integration key for this endpoint.",
"requestBody": {
"description": "The event",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeploymentEvent"
}
}
},
"required": true
},
"responses": {
"202": {
"description": "The event has been accepted",
"content": {}
}
},
"security": [],
"x-codegen-request-body-name": "event"
}
},
"/alert-actions": {
"get": {
"tags": [
"Alert Actions"
],
"summary": "Get alert actions.",
"parameters": [
{
"name": "source",
"in": "query",
"description": "alert source id",
"schema": {
"type": "number"
}
},
{
"name": "connector",
"in": "query",
"description": "connector id",
"schema": {
"type": "string"
}
},
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of alert actions.",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 100
}
}
],
"responses": {
"200": {
"description": "The filtered alert actions",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AlertAction"
}
}
}
}
}
}
},
"post": {
"tags": [
"Alert Actions"
],
"summary": "Create a new alert action.",
"requestBody": {
"description": "the alert action",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AlertAction"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The newly created alert action",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AlertAction"
}
}
}
}
},
"x-codegen-request-body-name": "alert action"
}
},
"/alert-actions/{id}": {
"get": {
"tags": [
"Alert Actions"
],
"summary": "Get a specific alert action.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response. You may declare multiple. (conditions); some may not work in lists; may be used for POST and PUT as well.",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"conditions"
]
}
}
}
],
"responses": {
"200": {
"description": "The requested alert action",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AlertAction"
}
}
}
}
}
},
"put": {
"tags": [
"Alert Actions"
],
"summary": "Update the specific alert action. (note: type cannot be changed)",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "the alert action",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AlertAction"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The updated alert action",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AlertAction"
}
}
}
}
},
"x-codegen-request-body-name": "alert action"
},
"delete": {
"tags": [
"Alert Actions"
],
"summary": "Remove a specific alert action.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Empty body delete response",
"content": {}
}
}
}
},
"/connectors": {
"get": {
"tags": [
"Connectors"
],
"summary": "Get connectors.",
"parameters": [
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of entities.",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 50
}
}
],
"responses": {
"200": {
"description": "The connectors",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Connector"
}
}
}
}
}
}
},
"post": {
"tags": [
"Connectors"
],
"summary": "Create a new connector.",
"requestBody": {
"description": "the connector",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Connector"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The newly created connector",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Connector"
}
}
}
}
},
"x-codegen-request-body-name": "connector"
}
},
"/connectors/{id}": {
"get": {
"tags": [
"Connectors"
],
"summary": "Get a specific connector.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "The requested connector",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Connector"
}
}
}
}
}
},
"put": {
"tags": [
"Connectors"
],
"summary": "Update the specific connector. (note: type cannot be changed)",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "the connector",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Connector"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The updated connector",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Connector"
}
}
}
}
},
"x-codegen-request-body-name": "connector"
},
"delete": {
"tags": [
"Connectors"
],
"summary": "Remove a specific connector.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Empty body delete response",
"content": {}
}
}
}
},
"/teams": {
"get": {
"tags": [
"Teams"
],
"summary": "Get teams.",
"parameters": [
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of entities.",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 50
}
},
{
"name": "members",
"in": "query",
"description": "optional, filter teams for specific members (currently only a single occurrence of this param is allowed)",
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "The teams",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Team"
}
}
}
}
}
}
},
"post": {
"tags": [
"Teams"
],
"summary": "Create a new team.",
"requestBody": {
"description": "the team",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Team"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The newly created team",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Team"
}
}
}
}
},
"x-codegen-request-body-name": "team"
}
},
"/teams/{id}": {
"get": {
"tags": [
"Teams"
],
"summary": "Get a specific team.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "The requested team",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Team"
}
}
}
}
}
},
"put": {
"tags": [
"Teams"
],
"summary": "Update the specific team",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "the team",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Team"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The updated team",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Team"
}
}
}
}
},
"x-codegen-request-body-name": "team"
},
"delete": {
"tags": [
"Teams"
],
"summary": "Remove a specific team.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "Empty body delete response",
"content": {}
}
}
}
},
"/teams/{id}/members": {
"post": {
"tags": [
"Teams"
],
"summary": "Add a new team member to specific team",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "the team member",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TeamMember"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The added team member",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TeamMember"
}
}
}
}
},
"x-codegen-request-body-name": "team member"
}
},
"/teams/{id}/members/{id}": {
"delete": {
"tags": [
"Teams"
],
"summary": "Remove a specific member of a specific team.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "Empty body delete response",
"content": {}
}
}
}
},
"/reports/alerts": {
"get": {
"tags": [
"Reports"
],
"summary": "List alert metrics for the requested resources",
"parameters": [
{
"name": "sources",
"in": "query",
"description": "alert source ids to filter metrics for",
"schema": {
"type": "number"
}
},
{
"name": "policies",
"in": "query",
"description": "escalation policy ids to filter metrics for",
"schema": {
"type": "number"
}
},
{
"name": "numbers",
"in": "query",
"description": "phone numbers of call routing numbers to filter metrics for",
"schema": {
"type": "string"
}
},
{
"name": "from",
"in": "query",
"description": "date-time ISO-UTC e.g. 2021-05-25T21:24:56.771Z, start of the time range, may not exceed 1 year in total span",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "until",
"in": "query",
"description": "date-time ISO-UTC e.g. 2021-05-25T21:24:56.771Z, end of the time range, must be after 'from', must not be in the future",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "timezone",
"in": "query",
"description": "Time zone in which the results will be rendered, defaults to tenant's configured default timezone",
"schema": {
"type": "string"
}
},
{
"name": "metric",
"in": "query",
"description": "Describes the metric that should be fetched choose one of: COUNT, MTTA or MTTR - defaults to COUNT",
"schema": {
"type": "string"
}
},
{
"name": "group-by",
"in": "query",
"description": "Defines the grouping of metrics, choose one of: DAY, WEEK or MONTH - defaults to WEEK",
"schema": {
"type": "string"
}
},
{
"name": "priority",
"in": "query",
"description": "Sets the priority filter that should be applied, choose one of: LOW, HIGH or ALL - defaults to ALL",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "an array of alert report metrics, each metric is another array containing data in the following order: \n\n[long:alertSourceId, long:escalationPolicyId, string:callRoutingNumberPhoneNumber, string:ISO-8601, long:value]\n\ne.g. [ [202541, 13541, \"\", \"2021-08\", 15] ]\n\nPlease note: the ISO-8601 (4th column) in this case depends on the chosen 'group-by' parameter. DAY=2021-08-01, WEEK=2021-W12, MONTH=2021-08",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "number"
},
{
"type": "string"
}
]
}
}
}
},
"metric sample": {
"example": {
"summary": "metric sample",
"value": [
[
202541,
13541,
"",
"2021-08",
15
]
]
}
}
}
}
}
}
},
"/reports/alerts/summary": {
"get": {
"tags": [
"Reports"
],
"summary": "Summarize a list of alert metrics",
"parameters": [
{
"name": "sources",
"in": "query",
"description": "alert source ids to filter metrics for",
"schema": {
"type": "number"
}
},
{
"name": "policies",
"in": "query",
"description": "escalation policy ids to filter metrics for",
"schema": {
"type": "number"
}
},
{
"name": "numbers",
"in": "query",
"description": "phone numbers of call routing numbers to filter metrics for",
"schema": {
"type": "string"
}
},
{
"name": "from",
"in": "query",
"description": "date-time ISO-UTC e.g. 2021-05-25T21:24:56.771Z, start of the time range, may not exceed 1 year in total span",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "until",
"in": "query",
"description": "date-time ISO-UTC e.g. 2021-05-25T21:24:56.771Z, end of the time range, must be after 'from', must not be in the future",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "timezone",
"in": "query",
"description": "Time zone in which the results will be rendered, defaults to tenant's configured default timezone",
"schema": {
"type": "string"
}
},
{
"name": "metric",
"in": "query",
"description": "Describes the metric that should be fetched choose one of: COUNT, MTTA or MTTR - defaults to COUNT",
"schema": {
"type": "string"
}
},
{
"name": "group-by",
"in": "query",
"description": "Defines the grouping of metrics, choose one of: DAY, WEEK or MONTH - defaults to WEEK",
"schema": {
"type": "string"
}
},
{
"name": "priority",
"in": "query",
"description": "Sets the priority filter that should be applied, choose one of: LOW, HIGH or ALL - defaults to ALL",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "an array containing summarized alert report metrics for the requested resource",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"alertSourceId": {
"type": "number"
},
"escalationPolicyId": {
"type": "number"
},
"callRoutingNumberPhoneNumber": {
"type": "string"
},
"count": {
"type": "number"
},
"mtta": {
"type": "number"
},
"mttr": {
"type": "number"
}
}
}
}
}
}
}
}
}
},
"/reports/api-keys/usage": {
"get": {
"tags": [
"Reports"
],
"summary": "List API key usage metrics for the requested resources",
"description": "This endpoint requires 'ADMIN' permissions",
"parameters": [
{
"name": "scopes",
"in": "query",
"description": "scopes of our API resources e.g. alert see https://docs.ilert.com/rest-api/developing-ilert-apps/token-lifetimes-error-codes-app-verification-etc.#ilert-oauth2-scopes",
"schema": {
"type": "string"
}
},
{
"name": "from",
"in": "query",
"description": "date-time ISO-UTC e.g. 2021-05-25T21:24:56.771Z, start of the time range, may not exceed 1 month (31 days) in total span (use this to paginate)",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "until",
"in": "query",
"description": "date-time ISO-UTC e.g. 2021-05-25T21:24:56.771Z, end of the time range, must be after 'from', must not be in the future (use this to paginate)",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "timezone",
"in": "query",
"description": "Time zone in which the results will be rendered, defaults to tenant's configured default timezone",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "an array of usage metrics, each metric is another array containing data in the following order: \n\n[long:userId, string:scope, string:ISO-8601, long:value]\n\ne.g. [ [202541, \"source\", \"2023-04-21\", 15] ]\n\nPlease note: the ISO-8601 (3th column) in this case is always DAY (2021-08-01) usually 24 hours apart, but there is a slight chance that the same userId and scope have multiple entries for the same DAY",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "number"
},
{
"type": "string"
}
]
}
}
}
},
"metric sample": {
"example": {
"summary": "metric sample",
"value": [
[
202541,
"alert",
"2023-04",
15
]
]
}
}
}
}
}
}
},
"/incident-templates": {
"get": {
"tags": [
"Incident Templates"
],
"summary": "Get incident templates.",
"parameters": [
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of entities.",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 50
}
}
],
"responses": {
"200": {
"description": "The incident templates",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IncidentTemplate"
}
}
}
}
}
}
},
"post": {
"tags": [
"Incident Templates"
],
"summary": "Create a new incident template.",
"requestBody": {
"description": "the incident template",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IncidentTemplate"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The newly created incident template",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IncidentTemplate"
}
}
}
}
},
"x-codegen-request-body-name": "incident-template"
}
},
"/incident-templates/{id}": {
"get": {
"tags": [
"Incident Templates"
],
"summary": "Get a specific incident template.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "The requested incident template",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IncidentTemplate"
}
}
}
}
}
},
"put": {
"tags": [
"Incident Templates"
],
"summary": "Update the specific incident template",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "the incident template",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IncidentTemplate"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The updated incident template",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IncidentTemplate"
}
}
}
}
},
"x-codegen-request-body-name": "incident-template"
},
"delete": {
"tags": [
"Incident Templates"
],
"summary": "Remove a specific incident template.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "Empty body delete response",
"content": {}
}
}
}
},
"/services": {
"get": {
"tags": [
"Services"
],
"summary": "Get services.",
"parameters": [
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of services. (Note: when using ?include maximum is reduced to 25)",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 10
}
},
{
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response. You may declare multiple. (subscribed, uptime, incidents)",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"subscribed",
"uptime",
"incidents"
]
}
}
}
],
"responses": {
"200": {
"description": "The services",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Service"
}
}
}
}
}
}
},
"post": {
"tags": [
"Services"
],
"summary": "Create a new service.",
"requestBody": {
"description": "the service",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceNoIncludes"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The newly created service",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceNoIncludes"
}
}
}
}
},
"x-codegen-request-body-name": "service"
}
},
"/services/{id}": {
"get": {
"tags": [
"Services"
],
"summary": "Get a specific service.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response. You may declare multiple. (subscribed, uptime, incidents)",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"subscribed",
"uptime",
"incidents"
]
}
}
}
],
"responses": {
"200": {
"description": "The requested service",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Service"
}
}
}
}
}
},
"put": {
"tags": [
"Services"
],
"summary": "Update the specific service",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "the service",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceNoIncludes"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The updated service",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceNoIncludes"
}
}
}
}
},
"x-codegen-request-body-name": "service"
},
"delete": {
"tags": [
"Services"
],
"summary": "Remove a specific service.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "Empty body delete response",
"content": {}
}
}
}
},
"/incidents": {
"get": {
"tags": [
"Incidents"
],
"summary": "Get incidents.",
"parameters": [
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of incidents. (Note: when using ?include maximum is reduced to 25)",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 10
}
},
{
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response. You may declare multiple. (subscribed)",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"subscribed"
]
}
}
},
{
"name": "states",
"in": "query",
"description": "state of the alert",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"INVESTIGATING",
"IDENTIFIED",
"MONITORING",
"RESOLVED"
]
}
}
},
{
"name": "services",
"in": "query",
"description": "service IDs of the incident's affected services",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
}
}
},
{
"name": "from",
"in": "query",
"description": "from date, ISO-UTC e.g. 2021-05-25T21:24:56.771Z, based on reportTime",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "until",
"in": "query",
"description": "until date, ISO-UTC e.g. 2021-05-26T21:24:56.771Z, based on reportTime",
"schema": {
"type": "string",
"format": "date-time"
}
}
],
"responses": {
"200": {
"description": "The incidents",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Incident"
}
}
}
}
}
}
},
"post": {
"tags": [
"Incidents"
],
"summary": "Create a new incident.",
"description": "Note: depending on affected services this will publish notifications to subscribers. Use /publish-info to forecast notifications.",
"requestBody": {
"description": "the incident",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IncidentNoIncludes"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The newly created incident",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IncidentNoIncludes"
}
}
}
}
},
"x-codegen-request-body-name": "incident"
}
},
"/incidents/publish-info": {
"post": {
"tags": [
"Incidents"
],
"summary": "Forecast the affected subscribers and status pages",
"description": "Forecast the affected subscribers and status pages as well as notifications that would be send out due to created or update incident.",
"requestBody": {
"description": "the incident",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IncidentNoIncludes"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The forecast for the provided incident",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"statusPagesInfo": {
"$ref": "#/components/schemas/UIMenuItem"
},
"privateStatusPages": {
"type": "number",
"readOnly": true
},
"publicStatusPages": {
"type": "number",
"readOnly": true
},
"privateSubscribers": {
"type": "number",
"readOnly": true
},
"publicSubscribers": {
"type": "number",
"readOnly": true
}
}
}
}
}
}
},
"x-codegen-request-body-name": "incident"
}
},
"/incidents/{id}": {
"get": {
"tags": [
"Incidents"
],
"summary": "Get a specific incident.",
"description": "Note: returns an ETag header that can be send to the PUT /incidents/{id} resource as If-Match header to return a 412 Error in case any related resources e.g. Services or Incident have been updated in the mean time.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response. You may declare multiple. (subscribed, affectedTeams, history)",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"subscribed",
"affectedTeams",
"history"
]
}
}
}
],
"responses": {
"200": {
"description": "The requested incident",
"headers": {
"ETag": {
"description": "Send to the PUT /incidents/{id} resource as If-Match header to return a 412 Error in case any related resources e.g. Services or Incident have been updated in the mean time.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IncidentWithHistory"
}
}
}
}
}
},
"put": {
"tags": [
"Incidents"
],
"summary": "Update the specific incident.",
"description": "Note: the update will be automatically appended to the incident's update history and publish notifications to subscribers.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "If-Match",
"in": "header",
"description": "Should be the ETag response header retrieved from GET /incidents/{id} to prevent updating the incident based on outdated information. Will return 412 status code in case of conflict.",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "the incident",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IncidentNoIncludes"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The updated incident",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IncidentNoIncludes"
}
}
}
}
},
"x-codegen-request-body-name": "incident"
}
},
"/incidents/{id}/private-subscribers": {
"get": {
"tags": [
"Incidents"
],
"summary": "Get the subscribers (users and teams) of an incident",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "The subscribers of the incident",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamUserOption"
}
}
}
}
}
}
},
"post": {
"tags": [
"Incidents"
],
"summary": "Add subscribers (users and teams) to an incident",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "subscribers that should be added",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamUserOption"
}
}
}
},
"required": true
},
"responses": {
"204": {
"description": "the response",
"content": {}
}
},
"x-codegen-request-body-name": "subscribers"
}
},
"/services/{id}/private-subscribers": {
"get": {
"tags": [
"Services"
],
"summary": "Get the subscribers (users and teams) of a service",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "The subscribers of the service",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamUserOption"
}
}
}
}
}
}
},
"put": {
"tags": [
"Services"
],
"summary": "Set subscribers (users and teams) of a service",
"description": "Note: this is an in place update",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "subscribers that should be adjusted",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamUserOption"
}
}
}
},
"required": true
},
"responses": {
"204": {
"description": "the response",
"content": {}
}
},
"x-codegen-request-body-name": "subscribers"
}
},
"/status-pages": {
"get": {
"tags": [
"Status Pages"
],
"summary": "Get status pages.",
"parameters": [
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of status pages.",
"schema": {
"maximum": 50,
"type": "integer",
"format": "int32",
"default": 25
}
},
{
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response. You may declare multiple. (subscribed)",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"subscribed"
]
}
}
}
],
"responses": {
"200": {
"description": "The status pages",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/StatusPageList"
}
}
}
}
}
}
},
"post": {
"tags": [
"Status Pages"
],
"summary": "Create a new status page.",
"requestBody": {
"description": "the status page",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StatusPageNoIncludes"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The newly created status page",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StatusPageNoIncludes"
}
}
}
}
},
"x-codegen-request-body-name": "service"
}
},
"/status-pages/{id}": {
"get": {
"tags": [
"Status Pages"
],
"summary": "Get a specific status page.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response. You may declare multiple. (subscribed, uptime, groups, structure). Note: structure is always included by default.",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"subscribed",
"uptime",
"groups",
"structure"
]
}
}
}
],
"responses": {
"200": {
"description": "The requested status page",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StatusPage"
}
}
}
}
}
},
"put": {
"tags": [
"Status Pages"
],
"summary": "Update the specific status page",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "the status page",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StatusPageNoIncludes"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The updated status page",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StatusPageNoIncludes"
}
}
}
}
},
"x-codegen-request-body-name": "service"
},
"delete": {
"tags": [
"Status Pages"
],
"summary": "Remove a specific status page.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "Empty body delete response",
"content": {}
}
}
}
},
"/status-pages/{id}/groups": {
"get": {
"tags": [
"Status Pages"
],
"summary": "Get the groups of a status page",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of entities.",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 50
}
}
],
"responses": {
"200": {
"description": "The groups of the status page",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/StatusPageGroup"
}
}
}
}
}
}
},
"post": {
"tags": [
"Status Pages"
],
"summary": "Add a group to a status page",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "Group that should be added",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StatusPageGroup"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "The created group",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StatusPageGroup"
}
}
}
}
},
"x-codegen-request-body-name": "Group"
}
},
"/status-pages/{id}/groups/{group-id}": {
"get": {
"tags": [
"Status Pages"
],
"summary": "Get a specific group of a status page",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "group-id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "The group of the status page",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StatusPageGroup"
}
}
}
},
"404": {
"description": "The group does not exist",
"content": {}
}
}
},
"put": {
"tags": [
"Status Pages"
],
"summary": "Update a group of a status page",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "group-id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "Group that should be updated",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StatusPageGroup"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The updated group of the status page",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StatusPageGroup"
}
}
}
}
},
"x-codegen-request-body-name": "Group"
},
"delete": {
"tags": [
"Status Pages"
],
"summary": "Remove group from a status page",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "group-id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "the response",
"content": {}
}
}
}
},
"/status-pages/{id}/private-subscribers": {
"get": {
"tags": [
"Status Pages"
],
"summary": "Get the subscribers (users and teams) of a status page",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "The subscribers of the status page",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamUserOption"
}
}
}
}
}
}
},
"put": {
"tags": [
"Status Pages"
],
"summary": "Set subscribers (users and teams) of a status page",
"description": "Note: this is an in place update",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "subscribers that should be adjusted",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamUserOption"
}
}
}
},
"required": true
},
"responses": {
"204": {
"description": "the response",
"content": {}
}
},
"x-codegen-request-body-name": "subscribers"
},
"post": {
"tags": [
"Status Pages"
],
"summary": "Add subscriber (user and team) to a status page",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "subscriber that should be added",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TeamUserOption"
}
}
},
"required": true
},
"responses": {
"204": {
"description": "the response",
"content": {}
}
},
"x-codegen-request-body-name": "subscriber"
}
},
"/status-pages/{id}/private-subscribers/{subscriber-id}": {
"delete": {
"tags": [
"Status Pages"
],
"summary": "Remove subscriber (user and team) from a status page",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "subscriber-id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "subscriber-type",
"in": "query",
"description": "the type of subscriber USER or TEAM",
"required": true,
"schema": {
"type": "string",
"enum": [
"USER",
"TEAM"
]
}
}
],
"responses": {
"204": {
"description": "the response",
"content": {}
}
},
"x-codegen-request-body-name": "subscriber"
}
},
"/service-outages": {
"get": {
"tags": [
"Service Outages"
],
"summary": "Get the outages (including applied overrides) of a specific service",
"parameters": [
{
"name": "service",
"in": "query",
"description": "the id of the service for which the outages should be fetched",
"schema": {
"type": "number"
}
},
{
"name": "from",
"in": "query",
"description": "from date, ISO-UTC e.g. 2021-05-25T21:24:56.771Z",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "until",
"in": "query",
"description": "until date, ISO-UTC e.g. 2021-05-26T21:24:56.771Z",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "ignore-overrides",
"in": "query",
"description": "if the outages should not take overrides into account, default is false",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "The outages of the service",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ServiceOutage"
}
}
}
}
}
}
}
},
"/service-outages/overrides": {
"get": {
"tags": [
"Service Outages"
],
"summary": "Get the overrides of a specific service",
"parameters": [
{
"name": "service",
"in": "query",
"description": "the id of the service for which the overrides should be fetched",
"schema": {
"type": "number"
}
},
{
"name": "from",
"in": "query",
"description": "from date, ISO-UTC e.g. 2021-05-25T21:24:56.771Z",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "until",
"in": "query",
"description": "until date, ISO-UTC e.g. 2021-05-26T21:24:56.771Z",
"schema": {
"type": "string",
"format": "date-time"
}
}
],
"responses": {
"200": {
"description": "The overrides of the service",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ServiceOutageOverride"
}
}
}
}
}
}
},
"post": {
"tags": [
"Service Outages"
],
"summary": "Override a part of a service's outage history",
"requestBody": {
"description": "override that should be made",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceOutageOverride"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "The added override",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceOutageOverride"
}
}
}
}
},
"x-codegen-request-body-name": "override"
}
},
"/service-outages/overrides/{id}": {
"get": {
"tags": [
"Service Outages"
],
"summary": "Get the specific service outage override",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "The override",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceOutageOverride"
}
}
}
}
}
},
"put": {
"tags": [
"Service Outages"
],
"summary": "Update an existing service outage override",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "override that should be made",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceOutageOverride"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The updated override",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceOutageOverride"
}
}
}
}
},
"x-codegen-request-body-name": "override"
},
"delete": {
"tags": [
"Service Outages"
],
"summary": "Remove a service outage override",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "the response",
"content": {}
}
}
}
},
"/metric-data-sources": {
"get": {
"tags": [
"Metric Data Sources"
],
"summary": "Get Metric Data Sources",
"parameters": [
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of metric data sources",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 10
}
}
],
"responses": {
"200": {
"description": "The Metric Data Sources",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MetricDataSource"
}
}
}
}
}
}
},
"post": {
"tags": [
"Metric Data Sources"
],
"summary": "Create a new Metric Data Source.",
"requestBody": {
"description": "The metric data source",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MetricDataSourcePost"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The newly created Metric Data Source",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MetricDataSource"
}
}
}
}
},
"x-codegen-request-body-name": "metric data source"
}
},
"/metric-data-sources/{id}": {
"get": {
"tags": [
"Metric Data Sources"
],
"summary": "Get a specific Metric Data Source",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "The requested Metric Data Source",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MetricDataSource"
}
}
}
}
}
},
"put": {
"tags": [
"Metric Data Sources"
],
"summary": "Update the specific Metric Data Source",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "The metric data source",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MetricDataSourcePost"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The updated Metric Data Source",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MetricDataSource"
}
}
}
}
},
"x-codegen-request-body-name": "metric data source"
},
"delete": {
"tags": [
"Metric Data Sources"
],
"summary": "Delete a specific Metric Data Source",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "Empty body delete response",
"content": {}
}
}
}
},
"/metrics": {
"get": {
"tags": [
"Metrics"
],
"summary": "Get metrics.",
"parameters": [
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of metrics. (Note: when using ?include maximum is reduced to 25)",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 10
}
},
{
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response. You may declare multiple. (dataSource, integrationKey)",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"dataSource",
"integrationKey"
]
}
}
}
],
"responses": {
"200": {
"description": "The metrics",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MetricList"
}
}
}
}
}
}
},
"post": {
"tags": [
"Metrics"
],
"summary": "Create a new metric.",
"requestBody": {
"description": "The metric",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MetricPost"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The newly created metric",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Metric"
}
}
}
}
},
"x-codegen-request-body-name": "metric"
}
},
"/metrics/{id}": {
"get": {
"tags": [
"Metrics"
],
"summary": "Get a specific Metric",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "The requested metric",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Metric"
}
}
}
}
}
},
"put": {
"tags": [
"Metrics"
],
"summary": "Update the specific Metric",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "The metric",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MetricPost"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The updated metric",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Metric"
}
}
}
}
},
"x-codegen-request-body-name": "metric"
},
"delete": {
"tags": [
"Metrics"
],
"summary": "Delete the specific Metric",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "Empty body delete response",
"content": {}
}
}
}
},
"/deployment-pipelines": {
"get": {
"tags": [
"Deployment Pipelines"
],
"summary": "Get deployment pipelines",
"parameters": [
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of deployment pipelines",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 50
}
}
],
"responses": {
"200": {
"description": "The deployment pipelines",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DeploymentPipeline"
}
}
}
}
}
}
},
"post": {
"tags": [
"Deployment Pipelines"
],
"summary": "Create a new deployment pipeline.",
"requestBody": {
"description": "The deployment pipeline",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeploymentPipeline"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The newly created depoyment pipeline",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeploymentPipeline"
}
}
}
}
}
}
},
"/deployment-pipelines/{id}": {
"get": {
"tags": [
"Deployment Pipelines"
],
"summary": "Get a specific deployment pipeline",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "The requested deployment pipeline",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeploymentPipeline"
}
}
}
}
}
},
"put": {
"tags": [
"Deployment Pipelines"
],
"summary": "Update the specific deployment pipeline",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "The deployment pipeline",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeploymentPipeline"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The updated deployment pipeline",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeploymentPipeline"
}
}
}
}
}
},
"delete": {
"tags": [
"Deployment Pipelines"
],
"summary": "Delete a specific deployment pipeline",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "Empty body delete response",
"content": {}
}
}
}
},
"/event-flows": {
"get": {
"tags": [
"Event Flows"
],
"summary": "List existing event flows.",
"description": "Returns a shallow list of event flows without the full node tree. Use the single resource endpoint to retrieve the complete event flow including all nodes and branches.",
"parameters": [
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of entities.",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 50
}
}
],
"responses": {
"200": {
"description": "The event flows",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventFlowListItem"
}
}
}
}
}
}
},
"post": {
"tags": [
"Event Flows"
],
"summary": "Create a new event flow.",
"requestBody": {
"description": "the event flow",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EventFlow"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "The newly created event flow",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EventFlow"
}
}
}
}
},
"x-codegen-request-body-name": "eventFlow"
}
},
"/event-flows/{id}": {
"get": {
"tags": [
"Event Flows"
],
"summary": "Get a specific event flow.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "The requested event flow",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EventFlow"
}
}
}
}
}
},
"put": {
"tags": [
"Event Flows"
],
"summary": "Update a specific event flow.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "the event flow",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EventFlow"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The updated event flow",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EventFlow"
}
}
}
}
},
"x-codegen-request-body-name": "eventFlow"
},
"delete": {
"tags": [
"Event Flows"
],
"summary": "Delete a specific event flow.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "Empty body delete response",
"content": {}
}
}
}
},
"/call-flows": {
"get": {
"tags": [
"Call Flows"
],
"summary": "List existing call flows.",
"description": "Returns a shallow list of call flows without the full node tree. Use the single resource endpoint to retrieve the complete call flow including all nodes and branches.",
"parameters": [
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of entities.",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 50
}
}
],
"responses": {
"200": {
"description": "The call flows",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CallFlowListItem"
}
}
}
}
}
}
},
"post": {
"tags": [
"Call Flows"
],
"summary": "Create a new call flow.",
"requestBody": {
"description": "the call flow",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CallFlow"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "The newly created call flow",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CallFlow"
}
}
}
}
},
"x-codegen-request-body-name": "callFlow"
}
},
"/call-flows/{id}": {
"get": {
"tags": [
"Call Flows"
],
"summary": "Get a specific call flow.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "The requested call flow",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CallFlow"
}
}
}
}
}
},
"put": {
"tags": [
"Call Flows"
],
"summary": "Update a specific call flow.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "the call flow",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CallFlow"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The updated call flow",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CallFlow"
}
}
}
}
},
"x-codegen-request-body-name": "callFlow"
},
"delete": {
"tags": [
"Call Flows"
],
"summary": "Delete a specific call flow.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"204": {
"description": "Empty body delete response",
"content": {}
}
}
}
},
"/call-flow-numbers": {
"get": {
"tags": [
"Call Flow Numbers"
],
"summary": "List call flow numbers.",
"parameters": [
{
"name": "state",
"in": "query",
"description": "Filter call flow numbers by availability state.",
"schema": {
"type": "string",
"default": "ANY",
"enum": [
"ANY",
"AVAILABLE",
"USED"
]
}
},
{
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response. You may declare multiple. (assignedTo)",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"assignedTo"
]
}
}
},
{
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of entities.",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 50
}
},
{
"name": "query",
"in": "query",
"description": "Filter call flow numbers by name.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "The call flow numbers",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CallFlowNumberDetails"
}
}
}
}
}
}
}
},
"/call-flow-numbers/{id}": {
"get": {
"tags": [
"Call Flow Numbers"
],
"summary": "Get a specific call flow number.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "The requested call flow number",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CallFlowNumberDetails"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"ContactStatus": {
"type": "string",
"enum": [
"OK",
"LOCKED",
"BLACKLISTED"
]
},
"ContactPhoneNumber": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"regionCode": {
"type": "string"
},
"target": {
"type": "string"
},
"primary": {
"type": "boolean",
"description": "May only be enabled for a single phone number contact at a time"
},
"status": {
"$ref": "#/components/schemas/ContactStatus"
}
}
},
"ContactPhoneNumberPost": {
"type": "object",
"properties": {
"regionCode": {
"type": "string"
},
"target": {
"type": "string"
},
"primary": {
"type": "boolean",
"description": "May only be enabled for a single phone number contact at a time"
}
}
},
"TimeZone": {
"type": "string",
"enum": [
"Europe/Berlin",
"America/New_York",
"America/Los_Angeles",
"Asia/Istanbul"
]
},
"OutboundNumber": {
"type": "object",
"properties": {
"countryCode": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"supportsInboundSms": {
"type": "boolean"
},
"types": {
"type": "array",
"items": {
"type": "string",
"enum": [
"SMS",
"VOICE"
]
}
}
}
},
"Integration": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"INBOUND",
"NATIVE",
"OUTBOUND"
]
},
"iconUrl": {
"type": "string"
},
"documentationUrl": {
"type": "string"
},
"integrationPath": {
"type": "string"
}
}
},
"Role": {
"type": "string",
"enum": [
"STAKEHOLDER",
"GUEST",
"RESPONDER",
"USER",
"ADMIN"
]
},
"TeamRole": {
"type": "string",
"enum": [
"STAKEHOLDER",
"RESPONDER",
"USER",
"ADMIN"
]
},
"UserRel": {
"required": [
"id"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
}
}
},
"User": {
"required": [
"email",
"firstName",
"lastName"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"email": {
"type": "string"
},
"timezone": {
"$ref": "#/components/schemas/TimeZone"
},
"position": {
"type": "string"
},
"department": {
"type": "string"
},
"avatarUrl": {
"type": "string",
"readOnly": true
},
"language": {
"type": "string",
"enum": [
"de",
"en"
]
},
"region": {
"type": "string",
"enum": [
"DE",
"GB",
"CH",
"CN",
"IN",
"US",
"FR",
"ES",
"CA",
"IE"
]
},
"role": {
"$ref": "#/components/schemas/Role"
},
"shiftColor": {
"type": "string",
"description": "Optional hex-color code for the user's shifts in schedules calendars"
},
"mutedUntil": {
"type": "string",
"description": "Date in ISO-8601",
"format": "date-time"
},
"createdAt": {
"type": "string",
"description": "Date in ISO-8601",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"description": "Date in ISO-8601",
"format": "date-time"
}
}
},
"UserPost": {
"required": [
"email",
"firstName",
"lastName"
],
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"email": {
"type": "string"
},
"timezone": {
"$ref": "#/components/schemas/TimeZone"
},
"position": {
"type": "string"
},
"department": {
"type": "string"
},
"avatarUrl": {
"type": "string",
"readOnly": true
},
"language": {
"type": "string",
"enum": [
"de",
"en"
]
},
"region": {
"type": "string",
"enum": [
"DE",
"GB",
"CH",
"CN",
"IN",
"US",
"FR",
"ES",
"CA",
"IE"
]
},
"role": {
"$ref": "#/components/schemas/Role"
},
"shiftColor": {
"type": "string",
"description": "Optional hex-color code for the user's shifts in schedules calendars"
}
}
},
"ContactEmail": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"target": {
"type": "string"
},
"status": {
"$ref": "#/components/schemas/ContactStatus"
}
}
},
"ContactEmailPost": {
"type": "object",
"properties": {
"target": {
"type": "string"
}
}
},
"NotificationPreferenceAlertMethod": {
"type": "string",
"enum": [
"EMAIL",
"SMS",
"PUSH",
"VOICE",
"WHATSAPP",
"TELEGRAM"
]
},
"NotificationPreferenceAlertType": {
"type": "string",
"enum": [
"LOW_PRIORITY",
"HIGH_PRIORITY"
]
},
"NotificationPreferencesAlertDelayMin": {
"type": "integer"
},
"NotificationPreferencesAlert": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"method": {
"$ref": "#/components/schemas/NotificationPreferenceAlertMethod"
},
"contact": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContactPhoneNumber"
},
{
"$ref": "#/components/schemas/ContactEmail"
}
]
},
"delayMin": {
"$ref": "#/components/schemas/NotificationPreferencesAlertDelayMin"
},
"type": {
"$ref": "#/components/schemas/NotificationPreferenceAlertType"
}
}
},
"NotificationPreferencesAlertPost": {
"type": "object",
"properties": {
"method": {
"$ref": "#/components/schemas/NotificationPreferenceAlertMethod"
},
"contact": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContactPhoneNumber"
},
{
"$ref": "#/components/schemas/ContactEmail"
}
]
},
"delayMin": {
"$ref": "#/components/schemas/NotificationPreferencesAlertDelayMin"
},
"type": {
"$ref": "#/components/schemas/NotificationPreferenceAlertType"
}
}
},
"NotificationPreferencesDutyTypes": {
"type": "string",
"enum": [
"ON_CALL"
]
},
"NotificationPreferencesDutyBeforeMin": {
"type": "integer",
"enum": [
0,
15,
30,
60,
180,
360,
720,
1440
]
},
"NotificationPreferenceDutyMethod": {
"type": "string",
"enum": [
"EMAIL",
"SMS",
"PUSH",
"WHATSAPP",
"TELEGRAM"
]
},
"NotificationPreferencesDuty": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"beforeMin": {
"$ref": "#/components/schemas/NotificationPreferencesDutyBeforeMin"
},
"contact": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContactPhoneNumber"
},
{
"$ref": "#/components/schemas/ContactEmail"
}
]
},
"method": {
"$ref": "#/components/schemas/NotificationPreferenceDutyMethod"
},
"type": {
"$ref": "#/components/schemas/NotificationPreferencesDutyTypes"
}
}
},
"NotificationPreferencesDutyPost": {
"type": "object",
"properties": {
"beforeMin": {
"$ref": "#/components/schemas/NotificationPreferencesDutyBeforeMin"
},
"contact": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContactPhoneNumber"
},
{
"$ref": "#/components/schemas/ContactEmail"
}
]
},
"method": {
"$ref": "#/components/schemas/NotificationPreferenceDutyMethod"
},
"type": {
"$ref": "#/components/schemas/NotificationPreferencesDutyTypes"
}
}
},
"NotificationPreferenceUpdateMethod": {
"type": "string",
"enum": [
"EMAIL",
"SMS",
"PUSH",
"WHATSAPP",
"TELEGRAM"
]
},
"NotificationPreferencesUpdateType": {
"type": "string",
"enum": [
"ALERT_ACCEPTED",
"ALERT_RESOLVED",
"ALERT_ESCALATED"
]
},
"NotificationPreferencesUpdate": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"contact": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContactPhoneNumber"
},
{
"$ref": "#/components/schemas/ContactEmail"
}
]
},
"method": {
"$ref": "#/components/schemas/NotificationPreferenceUpdateMethod"
},
"type": {
"$ref": "#/components/schemas/NotificationPreferencesUpdateType"
}
}
},
"NotificationPreferencesUpdatePost": {
"type": "object",
"properties": {
"contact": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContactPhoneNumber"
},
{
"$ref": "#/components/schemas/ContactEmail"
}
]
},
"method": {
"$ref": "#/components/schemas/NotificationPreferenceUpdateMethod"
},
"type": {
"$ref": "#/components/schemas/NotificationPreferencesUpdateType"
}
}
},
"NotificationPreferenceSubscriptionMethod": {
"type": "string",
"enum": [
"EMAIL",
"SMS",
"PUSH"
]
},
"NotificationPreferencesSubscription": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"contact": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContactPhoneNumber"
},
{
"$ref": "#/components/schemas/ContactEmail"
}
]
},
"method": {
"$ref": "#/components/schemas/NotificationPreferenceSubscriptionMethod"
}
}
},
"NotificationPreferencesSubscriptionPost": {
"type": "object",
"properties": {
"contact": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContactPhoneNumber"
},
{
"$ref": "#/components/schemas/ContactEmail"
}
]
},
"method": {
"$ref": "#/components/schemas/NotificationPreferenceSubscriptionMethod"
}
}
},
"EscalationRule": {
"required": [
"escalationTimeout"
],
"type": "object",
"properties": {
"escalationTimeout": {
"type": "integer"
},
"user": {
"type": "object",
"properties": {
"id": {
"type": "number"
}
},
"description": "This field (type: User) is deprecated, please use 'users' instead"
},
"schedule": {
"type": "object",
"properties": {
"id": {
"type": "number"
}
},
"description": "This field (type: Schedule) is deprecated, please use 'schedules' instead"
},
"team": {
"type": "object",
"properties": {
"id": {
"type": "number"
}
},
"description": "This field (type: Team) is deprecated, please use 'teams' instead"
},
"users": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UserRel"
}
},
"schedules": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ScheduleRel"
}
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
}
}
},
"EscalationPolicy": {
"required": [
"escalationRules",
"name"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"escalationRules": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EscalationRule"
}
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"repeating": {
"type": "boolean",
"default": false
},
"frequency": {
"maximum": 9,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"delayMin": {
"maximum": 15,
"minimum": 0,
"type": "integer",
"format": "int32",
"default": 0
},
"routingKey": {
"type": "string",
"description": "optional"
}
}
},
"AlertPriority": {
"type": "string",
"enum": [
"HIGH",
"LOW"
]
},
"AlertPriorityRule": {
"type": "string",
"enum": [
"HIGH",
"LOW",
"HIGH_DURING_SUPPORT_HOURS",
"LOW_DURING_SUPPORT_HOURS"
]
},
"SupportHour": {
"required": [
"name",
"supportDays",
"timezone"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"timezone": {
"$ref": "#/components/schemas/TimeZone"
},
"supportDays": {
"type": "object",
"properties": {
"MONDAY": {
"$ref": "#/components/schemas/SupportDay"
},
"TUESDAY": {
"$ref": "#/components/schemas/SupportDay"
},
"WEDNESDAY": {
"$ref": "#/components/schemas/SupportDay"
},
"THURSDAY": {
"$ref": "#/components/schemas/SupportDay"
},
"FRIDAY": {
"$ref": "#/components/schemas/SupportDay"
},
"SATURDAY": {
"$ref": "#/components/schemas/SupportDay"
},
"SUNDAY": {
"$ref": "#/components/schemas/SupportDay"
}
}
},
"exceptions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SupportHourException"
}
}
}
},
"SupportHourListItem": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"timezone": {
"$ref": "#/components/schemas/TimeZone"
},
"supportDays": {
"type": "object",
"properties": {
"MONDAY": {
"$ref": "#/components/schemas/SupportDay"
},
"TUESDAY": {
"$ref": "#/components/schemas/SupportDay"
},
"WEDNESDAY": {
"$ref": "#/components/schemas/SupportDay"
},
"THURSDAY": {
"$ref": "#/components/schemas/SupportDay"
},
"FRIDAY": {
"$ref": "#/components/schemas/SupportDay"
},
"SATURDAY": {
"$ref": "#/components/schemas/SupportDay"
},
"SUNDAY": {
"$ref": "#/components/schemas/SupportDay"
}
}
}
}
},
"SupportHourException": {
"type": "object",
"required": [
"name",
"start",
"end",
"supportStatus"
],
"properties": {
"name": {
"type": "string"
},
"start": {
"type": "string",
"format": "date"
},
"end": {
"type": "string",
"format": "date"
},
"supportStatus": {
"type": "string",
"enum": [
"DURING",
"OUTSIDE"
]
}
}
},
"SupportDay": {
"required": [
"end",
"start"
],
"type": "object",
"properties": {
"start": {
"type": "string",
"format": "time"
},
"end": {
"type": "string",
"format": "time"
}
}
},
"IntegrationType": {
"type": "string",
"enum": [
"NAGIOS",
"ICINGA",
"EMAIL2",
"SMS",
"API",
"HEARTBEAT2",
"PRTG",
"PINGDOM",
"CLOUDWATCH",
"AWSPHD",
"STACKDRIVER",
"INSTANA",
"ZABBIX",
"SOLARWINDS",
"PROMETHEUS",
"NEWRELIC",
"GRAFANA",
"GITHUB",
"DATADOG",
"UPTIMEROBOT",
"APPDYNAMICS",
"DYNATRACE",
"TOPDESK",
"STATUSCAKE",
"MONITOR",
"TOOL",
"CHECKMK",
"AUTOTASK",
"AWSBUDGET",
"SYSDIG",
"SERVERDENSITY",
"ZAPIER",
"KENTIXAM",
"JIRA",
"CONSUL",
"ZAMMAD",
"SPLUNK",
"SERVICENOW",
"SEARCHGUARD",
"KUBERNETES",
"SIGNALFX",
"AZUREALERTS",
"TERRAFORMCLOUD",
"SENTRY",
"SEMATEXT",
"SUMOLOGIC",
"RAYGUN",
"MXTOOLBOX",
"ESWATCHER",
"AMAZONSNS",
"KAPACITOR",
"CORTEXXSOAR",
"ZENDESK",
"AUVIK",
"SENSU",
"NCENTRAL",
"JUMPCLOUD",
"SALESFORCE",
"GUARDDUTY",
"STATUSHUB",
"IXON",
"APIFORTRESS",
"FRESHSERVICE",
"APPSIGNAL",
"LIGHTSTEP",
"IBMCLOUDFUNCTIONS",
"CROWDSTRIKE",
"HUMIO",
"OHDEAR",
"MONGODBATLAS",
"GITLAB",
"HYPERPING",
"PAPRISMACLOUD",
"SAMSARA",
"PANDORAFMS",
"MSSCOM",
"TWILIO",
"CISCOMERAKI",
"CHECKLY",
"POSTHOG",
"GOOGLESCC",
"SLACK",
"MSTEAMS",
"UPTIMEKUMA",
"TWILIOERRORS",
"PARTICLE",
"CLOUDFLARE",
"TULIP",
"GRAYLOG",
"CATCHPOINT",
"LOKI",
"CORTEX",
"MIMIR",
"HALOPSA",
"INFLUXDB",
"CALLFLOW",
"HALOITSM",
"KIBANA",
"VICTORIAMETRICS",
"HONEYCOMB",
"FOURME",
"KEEP",
"UBIDOTS",
"HETRIXTOOLS",
"POSTMAN",
"CLUSTERCONTROL",
"NETDATA",
"AWX",
"KAFKA",
"MQTT",
"RAPIDSPIKE",
"HONEYBADGER",
"HEALTHCHECKSIO",
"MEZMO",
"SERVERGUARD24",
"CISCOTHOUSANDEYES",
"SITE24X7",
"ITCONDUCTOR",
"SAPFRUN",
"APICA",
"DASH0",
"ROLLBAR",
"GATUS",
"LIBRENMS",
"PANTHER",
"TEAMCITY",
"ALIBABACLOUD",
"FLEETDM",
"CONNECTWISEPSA",
"DEADMANSSNITCH",
"FORTISOAR",
"OPMANAGER",
"CRONITOR",
"DOMOTZ",
"LIVEWATCH",
"AZUREDEVOPS",
"LEVELIO",
"EKARA",
"SYSAID",
"PHAREIO",
"OPSGENIE",
"WHATAP",
"SIGNOZ",
"GOOGLECHAT"
]
},
"AlertActionType": {
"type": "string",
"enum": [
"autotask",
"jira",
"microsoft_teams_bot",
"microsoft_teams_webhook",
"servicenow",
"slack",
"slack_webhook",
"webhook",
"zendesk",
"discord",
"github",
"topdesk",
"email",
"zapier",
"zammad",
"mattermost",
"zoom_chat",
"dingtalk",
"aws_event_bridge",
"dynamic",
"zabbix",
"automation_rule",
"telegram",
"google_chat_bot",
"google_chat_webhook"
]
},
"ConnectorType": {
"type": "string",
"enum": [
"jira",
"microsoft_teams_bot",
"servicenow",
"slack",
"zendesk",
"discord",
"github",
"topdesk",
"zammad",
"mattermost",
"zoom_chat",
"dingtalk",
"dynamic",
"zabbix",
"autotask",
"google_chat_bot"
]
},
"ScheduleRel": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"STATIC",
"RECURRING"
]
}
}
},
"Schedule": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"timezone": {
"$ref": "#/components/schemas/TimeZone"
},
"type": {
"type": "string",
"enum": [
"STATIC",
"RECURRING"
]
},
"scheduleLayers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ScheduleLayerConfig"
}
},
"shifts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ShiftRel"
}
},
"showGaps": {
"type": "boolean"
},
"defaultShiftDuration": {
"type": "string",
"format": "P7D"
},
"currentShift": {
"$ref": "#/components/schemas/ShiftRel"
},
"nextShift": {
"$ref": "#/components/schemas/ShiftRel"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
}
}
},
"ShiftRel": {
"type": "object",
"properties": {
"user": {
"$ref": "#/components/schemas/UserRel"
},
"end": {
"type": "string",
"format": "date-time"
},
"start": {
"type": "string",
"format": "date-time"
}
}
},
"Shift": {
"type": "object",
"properties": {
"user": {
"$ref": "#/components/schemas/User"
},
"end": {
"type": "string",
"format": "date-time"
},
"start": {
"type": "string",
"format": "date-time"
}
}
},
"ScheduleLayerConfig": {
"required": [
"rotation",
"startsOn",
"users"
],
"type": "object",
"properties": {
"name": {
"type": "string"
},
"startsOn": {
"type": "string",
"format": "date-time"
},
"endsOn": {
"type": "string",
"format": "date-time"
},
"users": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UserRel"
}
},
"rotation": {
"type": "string",
"format": "P7D"
},
"restrictionType": {
"type": "string",
"description": "Note: 'TIMES_OF_DAY' is just a UI state representation, the API always uses 'TIMES_OF_WEEK'",
"enum": [
"TIMES_OF_WEEK"
]
},
"restrictions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ScheduleLayerRestriction"
}
}
}
},
"ScheduleLayerRestriction": {
"required": [
"from",
"to"
],
"type": "object",
"properties": {
"from": {
"$ref": "#/components/schemas/TimeOfWeek"
},
"to": {
"$ref": "#/components/schemas/TimeOfWeek"
}
}
},
"TimeOfWeek": {
"required": [
"dayOfWeek",
"time"
],
"type": "object",
"properties": {
"dayOfWeek": {
"type": "string",
"enum": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY",
"SATURDAY",
"SUNDAY"
]
},
"time": {
"type": "string",
"format": "15:00"
}
}
},
"Connector": {
"required": [
"name",
"type"
],
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"$ref": "#/components/schemas/ConnectorType"
},
"name": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"params": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/EParamsDatadog"
},
{
"$ref": "#/components/schemas/EParamsJira"
},
{
"$ref": "#/components/schemas/EParamsMicrosoftTeams"
},
{
"$ref": "#/components/schemas/EParamsServiceNow"
},
{
"$ref": "#/components/schemas/EParamsSlack"
},
{
"$ref": "#/components/schemas/EParamsZendesk"
},
{
"$ref": "#/components/schemas/EParamsDiscord"
},
{
"$ref": "#/components/schemas/EParamsGithub"
},
{
"$ref": "#/components/schemas/EParamsTopdesk"
},
{
"$ref": "#/components/schemas/EParamsAWSLambda"
},
{
"$ref": "#/components/schemas/EParamsAzureFunction"
},
{
"$ref": "#/components/schemas/EParamsGoogleFunction"
},
{
"$ref": "#/components/schemas/EParamsSysdig"
},
{
"$ref": "#/components/schemas/EParamsStatusPageIO"
},
{
"$ref": "#/components/schemas/EParamsDingTalk"
},
{
"$ref": "#/components/schemas/EParamsZabbix"
}
]
}
}
},
"EParamsZabbix": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"apiKey": {
"type": "string"
}
}
},
"EParamsDingTalk": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"secret": {
"type": "string"
}
}
},
"EParamsDatadog": {
"type": "object",
"properties": {
"apiKey": {
"type": "string"
}
}
},
"EParamsJira": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"email": {
"type": "string"
},
"password": {
"type": "string"
}
}
},
"EParamsMicrosoftTeams": {
"type": "object",
"properties": {
"url": {
"type": "string"
}
}
},
"EParamsServiceNow": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"username": {
"type": "string"
},
"password": {
"type": "string"
}
}
},
"EParamsSlack": {
"type": "object"
},
"EParamsZendesk": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"email": {
"type": "string"
},
"apiKey": {
"type": "string"
}
}
},
"EParamsDiscord": {
"type": "object",
"properties": {
"url": {
"type": "string"
}
}
},
"EParamsGithub": {
"type": "object",
"properties": {
"apiKey": {
"type": "string"
}
}
},
"EParamsTopdesk": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"username": {
"type": "string"
},
"password": {
"type": "string"
}
}
},
"EParamsAWSLambda": {
"type": "object",
"properties": {
"authorization": {
"type": "string"
}
}
},
"EParamsAzureFunction": {
"type": "object",
"properties": {
"authorization": {
"type": "string"
}
}
},
"EParamsGoogleFunction": {
"type": "object",
"properties": {
"authorization": {
"type": "string"
}
}
},
"EParamsSysdig": {
"type": "object",
"properties": {
"apiKey": {
"type": "string"
}
}
},
"EParamsStatusPageIO": {
"type": "object",
"properties": {
"apiKey": {
"type": "string"
}
}
},
"AlertAction": {
"required": [
"connectorType",
"name"
],
"type": "object",
"properties": {
"id": {
"type": "string"
},
"alertSources": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AlertSource"
}
},
"connectorId": {
"type": "string"
},
"connectorType": {
"$ref": "#/components/schemas/AlertActionType"
},
"name": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"triggerMode": {
"type": "string",
"enum": [
"AUTOMATIC",
"MANUAL"
]
},
"bidirectional": {
"type": "boolean",
"readOnly": true
},
"escalationEndedDelaySec": {
"maximum": 7200,
"minimum": 0,
"type": "number",
"description": "May only be used with triggerType 'alert-escalation-ended' selected"
},
"notResolvedDelaySec": {
"maximum": 7200,
"minimum": 0,
"type": "number",
"description": "May only be used with triggerType 'v-alert-not-resolved' selected"
},
"triggerTypes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"alert-created",
"alert-assigned",
"alert-auto-escalated",
"alert-acknowledged",
"alert-raised",
"alert-comment-added",
"alert-escalation-ended",
"alert-resolved",
"alert-responder-added",
"alert-responder-removed",
"alert-channel-attached",
"alert-channel-detached",
"v-alert-not-resolved"
]
}
},
"alertFilter": {
"type": "object",
"description": "This field is deprecated, use 'conditions' instead. If both are used this field is ignored.",
"properties": {
"operator": {
"type": "string",
"enum": [
"AND",
"OR"
]
},
"predicates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"enum": [
"ALERT_SUMMARY",
"ALERT_DETAILS",
"ESCALATION_POLICY",
"ALERT_PRIORITY"
]
},
"criteria": {
"type": "string",
"enum": [
"CONTAINS_ANY_WORDS",
"CONTAINS_NOT_WORDS",
"CONTAINS_STRING",
"CONTAINS_NOT_STRING",
"IS_STRING",
"IS_NOT_STRING",
"MATCHES_REGEX",
"MATCHES_NOT_REGEX"
]
},
"value": {
"type": "string"
}
}
}
}
}
},
"conditions": {
"type": "string",
"description": "Defines an optional alert filter condition in ICL language. This is a code based implementation, more info on syntax: https://docs.ilert.com/rest-api/icl-ilert-condition-language. For block based configuration please use the web UI. Note: this field is an ?include, it will not appear in lists."
},
"params": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/CParamsDatadog"
},
{
"$ref": "#/components/schemas/CParamsJira"
},
{
"$ref": "#/components/schemas/CParamsMicrosoftTeams"
},
{
"$ref": "#/components/schemas/CParamsMicrosoftTeamsWebhookOnly"
},
{
"$ref": "#/components/schemas/CParamsServiceNow"
},
{
"$ref": "#/components/schemas/CParamsAutotask"
},
{
"$ref": "#/components/schemas/CParamsSlack"
},
{
"$ref": "#/components/schemas/CParamsWebhook"
},
{
"$ref": "#/components/schemas/CParamsZendesk"
},
{
"$ref": "#/components/schemas/CParamsDiscord"
},
{
"$ref": "#/components/schemas/CParamsGithub"
},
{
"$ref": "#/components/schemas/CParamsTopdesk"
},
{
"$ref": "#/components/schemas/CParamsAWSLambda"
},
{
"$ref": "#/components/schemas/CParamsAzureFunction"
},
{
"$ref": "#/components/schemas/CParamsGoogleFunction"
},
{
"$ref": "#/components/schemas/CParamsEmail"
},
{
"$ref": "#/components/schemas/CParamsSysdig"
},
{
"$ref": "#/components/schemas/CParamsZapier"
},
{
"$ref": "#/components/schemas/CParamsZoomChat"
},
{
"$ref": "#/components/schemas/CParamsZoomMeeting"
},
{
"$ref": "#/components/schemas/CParamsStatusPageIO"
},
{
"$ref": "#/components/schemas/CParamsDingTalk"
},
{
"$ref": "#/components/schemas/CParamsDingTalkAction"
},
{
"$ref": "#/components/schemas/CParamsAutomationRule"
},
{
"$ref": "#/components/schemas/CParamsAutomationRule"
},
{
"$ref": "#/components/schemas/CParamsTelegram"
},
{
"$ref": "#/components/schemas/CParamsGoogleChat"
},
{
"$ref": "#/components/schemas/CParamsGoogleChatWebhookOnly"
}
]
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
}
}
},
"CParamsAutomationRule": {
"required": [
"alertType",
"serviceIds",
"serviceStatus"
],
"type": "object",
"properties": {
"alertType": {
"type": "string",
"enum": [
"CREATED",
"ACCEPTED"
]
},
"resolveIncident": {
"type": "boolean",
"default": false
},
"serviceStatus": {
"$ref": "#/components/schemas/ServiceStatus"
},
"templateId": {
"type": "integer",
"format": "int64"
},
"sendNotification": {
"type": "boolean",
"default": false
},
"serviceIds": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
}
}
}
},
"CParamsTelegram": {
"required": [
"channelId"
],
"type": "object",
"properties": {
"channelId": {
"type": "string",
"description": "The telegram group id, usually i64, as string"
}
}
},
"CParamsDingTalk": {
"type": "object",
"properties": {
"isAtAll": {
"type": "boolean"
},
"atMobiles": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"CParamsDingTalkAction": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"secret": {
"type": "string"
},
"isAtAll": {
"type": "boolean"
},
"atMobiles": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"CParamsDatadog": {
"type": "object",
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"priority": {
"type": "string"
},
"site": {
"type": "string"
}
}
},
"CParamsJira": {
"type": "object",
"properties": {
"project": {
"type": "string"
},
"issueType": {
"type": "string"
},
"bodyTemplate": {
"type": "string"
}
}
},
"CParamsServiceNow": {
"type": "object",
"properties": {
"callerId": {
"type": "string"
},
"impact": {
"type": "string"
},
"urgency": {
"type": "string"
},
"closeCode": {
"type": "string"
},
"assignmentGroup": {
"type": "string"
},
"ownerGroup": {
"type": "string"
},
"service": {
"type": "string"
},
"serviceOffering": {
"type": "string"
},
"contactType": {
"type": "string"
}
}
},
"CParamsAutotask": {
"required": [
"queueId"
],
"type": "object",
"properties": {
"companyId": {
"type": "string"
},
"queueId": {
"type": "string"
},
"ticketCategory": {
"type": "string"
},
"ticketType": {
"type": "string"
},
"noteType": {
"type": "string"
},
"notePublish": {
"type": "string"
},
"status": {
"type": "string"
}
}
},
"CParamsMicrosoftTeamsWebhookOnly": {
"type": "object"
},
"CParamsMicrosoftTeams": {
"required": [
"channelId",
"teamId"
],
"type": "object",
"properties": {
"channelId": {
"type": "string"
},
"channelName": {
"type": "string"
},
"teamId": {
"type": "string"
},
"teamName": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"chat",
"meeting"
]
}
}
},
"CParamsSlack": {
"required": [
"channelId"
],
"type": "object",
"properties": {
"channelId": {
"type": "string"
},
"channelName": {
"type": "string"
},
"teamDomain": {
"type": "string"
},
"teamId": {
"type": "string"
}
}
},
"CParamsWebhook": {
"required": [
"webhookUrl"
],
"type": "object",
"properties": {
"webhookUrl": {
"type": "string"
},
"bodyTemplate": {
"type": "string"
},
"headers": {
"type": "array",
"items": {
"type": "object",
"required": [
"key",
"value"
],
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
}
},
"CParamsZendesk": {
"type": "object",
"properties": {
"priority": {
"type": "string"
}
}
},
"CParamsDiscord": {
"type": "object"
},
"CParamsGithub": {
"type": "object",
"properties": {
"owner": {
"type": "string"
},
"repository": {
"type": "string"
},
"labels": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"CParamsTopdesk": {
"type": "object",
"properties": {
"status": {
"type": "string"
}
}
},
"CParamsAWSLambda": {
"type": "object",
"properties": {
"webhookUrl": {
"type": "string"
},
"bodyTemplate": {
"type": "string"
}
}
},
"CParamsAzureFunction": {
"type": "object",
"properties": {
"webhookUrl": {
"type": "string"
},
"bodyTemplate": {
"type": "string"
}
}
},
"CParamsGoogleFunction": {
"type": "object",
"properties": {
"webhookUrl": {
"type": "string"
},
"bodyTemplate": {
"type": "string"
}
}
},
"CParamsEmail": {
"type": "object",
"properties": {
"recipients": {
"type": "array",
"items": {
"type": "string"
}
},
"subject": {
"type": "string"
},
"bodyTemplate": {
"type": "string"
}
}
},
"CParamsSysdig": {
"type": "object",
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"eventFilter": {
"type": "string"
}
}
},
"CParamsZapier": {
"type": "object",
"properties": {
"webhookUrl": {
"type": "string"
}
}
},
"CParamsZoomChat": {
"type": "object",
"properties": {
"channelId": {
"type": "string"
}
}
},
"CParamsZoomMeeting": {
"type": "object",
"properties": {
"password": {
"type": "string"
}
}
},
"CParamsStatusPageIO": {
"type": "object",
"properties": {
"pageId": {
"type": "string"
}
}
},
"CParamsGoogleChat": {
"required": [
"channelId"
],
"type": "object",
"properties": {
"channelId": {
"type": "string"
},
"channelName": {
"type": "string"
}
}
},
"CParamsGoogleChatWebhookOnly": {
"type": "object"
},
"MaintenanceWindow": {
"type": "object",
"properties": {
"timezone": {
"$ref": "#/components/schemas/TimeZone"
},
"start": {
"type": "string",
"format": "date-time"
},
"end": {
"type": "string",
"format": "date-time"
},
"summary": {
"type": "string"
},
"description": {
"type": "string"
},
"alertSources": {
"maxItems": 50,
"type": "array",
"items": {
"$ref": "#/components/schemas/AlertSource"
}
},
"services": {
"maxItems": 50,
"type": "array",
"items": {
"$ref": "#/components/schemas/ServiceNoIncludes"
}
},
"createdBy": {
"type": "string",
"readOnly": true
},
"notifications": {
"type": "object",
"properties": {
"atCreation": {
"type": "boolean"
},
"atStart": {
"type": "boolean"
},
"atEnd": {
"type": "boolean"
}
}
}
}
},
"TeamRel": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
}
}
},
"Team": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"visibility": {
"$ref": "#/components/schemas/TeamVisibilityType"
},
"members": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamMember"
}
},
"createdAt": {
"type": "string",
"description": "Date in ISO-8601",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"description": "Date in ISO-8601",
"format": "date-time"
}
}
},
"TeamVisibilityType": {
"type": "string",
"enum": [
"PUBLIC",
"PRIVATE"
]
},
"TeamMember": {
"type": "object",
"properties": {
"user": {
"$ref": "#/components/schemas/User"
},
"role": {
"$ref": "#/components/schemas/TeamRole"
}
}
},
"OnCall": {
"type": "object",
"properties": {
"user": {
"$ref": "#/components/schemas/User"
},
"escalationPolicy": {
"$ref": "#/components/schemas/EscalationPolicy"
},
"schedule": {
"$ref": "#/components/schemas/ScheduleRel"
},
"start": {
"type": "string",
"format": "date-time"
},
"end": {
"type": "string",
"format": "date-time"
},
"escalationLevel": {
"type": "number"
}
}
},
"HeartbeatMonitor": {
"type": "object",
"required": [
"name",
"intervalSec"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"state": {
"type": "string",
"default": "UNKNOWN",
"enum": [
"UNKNOWN",
"HEALTHY",
"OVERDUE"
]
},
"intervalSec": {
"type": "integer",
"format": "int32",
"minimum": 25,
"maximum": 2678400
},
"alertSummary": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "ISO-8601"
},
"updatedAt": {
"type": "string",
"format": "ISO-8601"
},
"alertSource": {
"$ref": "#/components/schemas/AlertSourceRel"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"integrationKey": {
"type": "string"
},
"integrationUrl": {
"type": "string"
}
}
},
"HeartbeatMonitorRel": {
"type": "object",
"required": [
"name",
"intervalSec"
],
"properties": {
"name": {
"type": "string"
},
"intervalSec": {
"type": "integer",
"format": "int32",
"minimum": 25,
"maximum": 2678400,
"description": "We recommend using an interval between 3 and 5 minutes, while pinging every 60 seconds. Of course if you are tracking use-cases like backup jobs that run once a week, a larger timeout and less pings suffice."
},
"alertSummary": {
"type": "string"
},
"alertSource": {
"$ref": "#/components/schemas/SimpleIdField64"
}
}
},
"HeartbeatMonitorNoIncludes": {
"type": "object",
"required": [
"name",
"intervalSec"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"state": {
"type": "string",
"default": "UNKNOWN",
"enum": [
"UNKNOWN",
"HEALTHY",
"OVERDUE"
]
},
"intervalSec": {
"type": "integer",
"format": "int32",
"minimum": 25,
"maximum": 2678400
},
"alertSummary": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "ISO-8601"
},
"updatedAt": {
"type": "string",
"format": "ISO-8601"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
}
}
},
"AlertSource": {
"required": [
"escalationPolicy",
"integrationType",
"name"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"name": {
"type": "string"
},
"iconUrl": {
"type": "string"
},
"lightIconUrl": {
"type": "string"
},
"darkIconUrl": {
"type": "string"
},
"escalationPolicy": {
"$ref": "#/components/schemas/EscalationPolicy"
},
"integrationType": {
"$ref": "#/components/schemas/IntegrationType"
},
"integrationKey": {
"type": "string"
},
"integrationUrl": {
"type": "string",
"readOnly": true
},
"autoResolutionTimeout": {
"type": "string",
"format": "ISO-8601"
},
"alertGroupingWindow": {
"type": "string",
"format": "ISO-8601"
},
"alertCreation": {
"type": "string",
"default": "ONE_ALERT_PER_EMAIL",
"enum": [
"ONE_ALERT_PER_EMAIL",
"ONE_ALERT_PER_EMAIL_SUBJECT",
"ONE_PENDING_ALERT_ALLOWED",
"ONE_OPEN_ALERT_ALLOWED",
"OPEN_RESOLVE_ON_EXTRACTION",
"ONE_ALERT_GROUPED_PER_WINDOW"
]
},
"status": {
"type": "string",
"readOnly": true,
"enum": [
"PENDING",
"ALL_ACCEPTED",
"ALL_RESOLVED",
"IN_MAINTENANCE",
"DISABLED"
]
},
"active": {
"type": "boolean",
"default": true
},
"alertPriorityRule": {
"$ref": "#/components/schemas/AlertPriorityRule"
},
"supportHours": {
"$ref": "#/components/schemas/SupportHour"
},
"bidirectional": {
"type": "boolean",
"readOnly": true
},
"summaryTemplate": {
"$ref": "#/components/schemas/AlertSourceTemplate"
},
"detailsTemplate": {
"$ref": "#/components/schemas/AlertSourceTemplate"
},
"routingTemplate": {
"$ref": "#/components/schemas/AlertSourceTemplate"
},
"linkTemplates": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AlertSourceLinkTemplate"
}
},
"priorityTemplate": {
"$ref": "#/components/schemas/AlertSourcePriorityTemplate"
},
"eventFilter": {
"type": "string",
"description": "Defines an optional event filter condition in ICL language. This is a code based implementation, more info on syntax: https://docs.ilert.com/rest-api/icl-ilert-condition-language. For block based configuration please use the web UI. It has no effect on manually created alerts. Note: this field is an ?include, it will not appear in lists."
},
"alertKeyTemplate": {
"$ref": "#/components/schemas/AlertSourceTemplate"
},
"eventTypeFilterCreate": {
"type": "string",
"description": "Defines an optional create alert rule in ICL language. This is a code based implementation, more info on syntax: https://docs.ilert.com/rest-api/icl-ilert-condition-language. For block based configuration please use the web UI. It has no effect on manually created alerts. Note: this field is an ?include, it will not appear in lists."
},
"eventTypeFilterAccept": {
"type": "string",
"description": "Defines an optional accept alert rule in ICL language This is a code based implementation, more info on syntax: https://docs.ilert.com/rest-api/icl-ilert-condition-language. For block based configuration please use the web UI. It has no effect on manually created alerts. Note: this field is an ?include, it will not appear in lists."
},
"eventTypeFilterResolve": {
"type": "string",
"description": "Defines an optional resolve alert rule in ICL language This is a code based implementation, more info on syntax: https://docs.ilert.com/rest-api/icl-ilert-condition-language. For block based configuration please use the web UI. It has no effect on manually created alerts. Note: this field is an ?include, it will not appear in lists."
}
}
},
"AlertSourceTemplate": {
"type": "object",
"properties": {
"textTemplate": {
"type": "string",
"description": "For more information on alert source templating, please visit: https://docs.ilert.com/alerting/alert-sources#alert-template.\n\n Example:
`Hi {{ users[0].name }} there!` \n\nYou can use the text template instead of elements by adding the include `textTemplate` to your request. Any version can be used for POST or PUT requests."
},
"elements": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AlertSourceTemplateElement"
}
}
}
},
"AlertSourceTemplateElement": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"TEXT",
"VAR",
"RAW"
]
},
"val": {
"type": "string"
},
"func": {
"type": "string"
},
"args": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AlertSourceTemplateElementArg"
}
}
}
},
"AlertSourceTemplateElementArg": {
"type": "object",
"properties": {
"S": {
"type": "string"
},
"N": {
"type": "integer"
}
}
},
"AlertSourceLinkTemplate": {
"required": [
"hrefTemplate",
"text"
],
"type": "object",
"properties": {
"text": {
"type": "string"
},
"hrefTemplate": {
"$ref": "#/components/schemas/AlertSourceTemplate"
}
}
},
"AlertSourcePriorityTemplate": {
"required": [
"mappings",
"valueTemplate"
],
"type": "object",
"properties": {
"valueTemplate": {
"$ref": "#/components/schemas/AlertSourceTemplate"
},
"mappings": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AlertSourcePriorityTemplateMapping"
}
}
}
},
"AlertSourcePriorityTemplateMapping": {
"required": [
"priority",
"value"
],
"type": "object",
"properties": {
"value": {
"type": "string"
},
"priority": {
"type": "string",
"enum": [
"LOW",
"HIGH"
]
}
}
},
"AlertSourceNoIncludes": {
"required": [
"escalationPolicy",
"integrationType",
"name"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"name": {
"type": "string"
},
"iconUrl": {
"type": "string"
},
"lightIconUrl": {
"type": "string"
},
"darkIconUrl": {
"type": "string"
},
"escalationPolicy": {
"$ref": "#/components/schemas/EscalationPolicy"
},
"integrationType": {
"$ref": "#/components/schemas/IntegrationType"
},
"integrationKey": {
"type": "string"
},
"integrationUrl": {
"type": "string",
"readOnly": true
},
"autoResolutionTimeout": {
"type": "string",
"format": "ISO-8601"
},
"alertGroupingWindow": {
"type": "string",
"format": "ISO-8601"
},
"alertCreation": {
"type": "string",
"default": "ONE_ALERT_PER_EMAIL",
"enum": [
"ONE_ALERT_PER_EMAIL",
"ONE_ALERT_PER_EMAIL_SUBJECT",
"ONE_PENDING_ALERT_ALLOWED",
"ONE_OPEN_ALERT_ALLOWED",
"OPEN_RESOLVE_ON_EXTRACTION",
"ONE_ALERT_GROUPED_PER_WINDOW"
]
},
"status": {
"type": "string",
"readOnly": true,
"enum": [
"PENDING",
"ALL_ACCEPTED",
"ALL_RESOLVED",
"IN_MAINTENANCE",
"DISABLED"
]
},
"active": {
"type": "boolean",
"default": true
},
"alertPriorityRule": {
"$ref": "#/components/schemas/AlertPriorityRule"
},
"supportHours": {
"$ref": "#/components/schemas/SupportHour"
},
"bidirectional": {
"type": "boolean",
"readOnly": true
}
}
},
"AlertSourceRel": {
"required": [
"escalationPolicy",
"integrationType",
"name"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"name": {
"type": "string"
},
"iconUrl": {
"type": "string"
},
"lightIconUrl": {
"type": "string"
},
"darkIconUrl": {
"type": "string"
},
"escalationPolicy": {
"$ref": "#/components/schemas/EscalationPolicy"
},
"integrationType": {
"$ref": "#/components/schemas/IntegrationType"
},
"integrationKey": {
"type": "string"
},
"integrationUrl": {
"type": "string",
"readOnly": true
},
"autoResolutionTimeout": {
"type": "string",
"format": "ISO-8601"
},
"alertGroupingWindow": {
"type": "string",
"format": "ISO-8601"
},
"alertCreation": {
"type": "string",
"default": "ONE_ALERT_PER_EMAIL",
"enum": [
"ONE_ALERT_PER_EMAIL",
"ONE_ALERT_PER_EMAIL_SUBJECT",
"ONE_PENDING_ALERT_ALLOWED",
"ONE_OPEN_ALERT_ALLOWED",
"OPEN_RESOLVE_ON_EXTRACTION",
"ONE_ALERT_GROUPED_PER_WINDOW"
]
},
"status": {
"type": "string",
"readOnly": true,
"enum": [
"PENDING",
"ALL_ACCEPTED",
"ALL_RESOLVED",
"IN_MAINTENANCE",
"DISABLED"
]
},
"active": {
"type": "boolean",
"default": true
},
"alertPriorityRule": {
"$ref": "#/components/schemas/AlertPriorityRule"
},
"supportHours": {
"$ref": "#/components/schemas/SimpleIdField64"
},
"bidirectional": {
"type": "boolean",
"readOnly": true
},
"summaryTemplate": {
"$ref": "#/components/schemas/AlertSourceTemplate"
},
"detailsTemplate": {
"$ref": "#/components/schemas/AlertSourceTemplate"
},
"routingTemplate": {
"$ref": "#/components/schemas/AlertSourceTemplate"
},
"linkTemplates": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AlertSourceLinkTemplate"
}
},
"priorityTemplate": {
"$ref": "#/components/schemas/AlertSourcePriorityTemplate"
},
"eventFilter": {
"type": "string",
"description": "Defines an optional event filter condition in ICL language. This is a code based implementation, more info on syntax: https://docs.ilert.com/rest-api/icl-ilert-condition-language. For block based configuration please use the web UI. It has no effect on manually created alerts. Note: this field is an ?include, it will not appear in lists."
},
"alertKeyTemplate": {
"$ref": "#/components/schemas/AlertSourceTemplate"
},
"eventTypeFilterCreate": {
"type": "string",
"description": "Defines an optional create alert rule in ICL language. This is a code based implementation, more info on syntax: https://docs.ilert.com/rest-api/icl-ilert-condition-language. For block based configuration please use the web UI. It has no effect on manually created alerts. Note: this field is an ?include, it will not appear in lists."
},
"eventTypeFilterAccept": {
"type": "string",
"description": "Defines an optional accept alert rule in ICL language This is a code based implementation, more info on syntax: https://docs.ilert.com/rest-api/icl-ilert-condition-language. For block based configuration please use the web UI. It has no effect on manually created alerts. Note: this field is an ?include, it will not appear in lists."
},
"eventTypeFilterResolve": {
"type": "string",
"description": "Defines an optional resolve alert rule in ICL language This is a code based implementation, more info on syntax: https://docs.ilert.com/rest-api/icl-ilert-condition-language. For block based configuration please use the web UI. It has no effect on manually created alerts. Note: this field is an ?include, it will not appear in lists."
}
}
},
"SimpleIdField64": {
"required": [
"id"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
}
},
"description": "For POST and PUT requests only the id field is required for sub entities, e.g. status page -> service, alert source -> support hour"
},
"SimpleIdFieldStr": {
"required": [
"id"
],
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
},
"ManualAlert": {
"required": [
"alertSource",
"summary"
],
"type": "object",
"properties": {
"summary": {
"type": "string"
},
"details": {
"type": "string"
},
"alertSource": {
"$ref": "#/components/schemas/SimpleIdField64"
},
"escalationPolicy": {
"$ref": "#/components/schemas/SimpleIdField64"
},
"priority": {
"$ref": "#/components/schemas/AlertPriority"
},
"assignedTo": {
"type": "object",
"properties": {
"id": {
"type": "number"
}
},
"description": "This field (type: User) is deprecated, please use 'responders' instead"
},
"images": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventImage"
}
},
"links": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventLink"
}
},
"responders": {
"type": "array",
"description": "List of responders (users), only user.id is required.",
"items": {
"type": "object",
"properties": {
"user": {
"$ref": "#/components/schemas/UserRel"
}
}
}
}
}
},
"AlertResponder": {
"type": "object",
"properties": {
"user": {
"$ref": "#/components/schemas/UserRel"
},
"status": {
"type": "string",
"enum": [
"PENDING",
"ACCEPTED"
]
},
"acceptedAt": {
"type": "string",
"format": "date-time"
}
}
},
"Alert": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"summary": {
"type": "string"
},
"details": {
"type": "string"
},
"reportTime": {
"type": "string",
"format": "date-time"
},
"resolvedOn": {
"type": "string",
"format": "date-time"
},
"status": {
"type": "string",
"enum": [
"PENDING",
"ACCEPTED",
"RESOLVED"
]
},
"alertSource": {
"$ref": "#/components/schemas/AlertSource"
},
"escalationPolicy": {
"$ref": "#/components/schemas/EscalationPolicy"
},
"priority": {
"$ref": "#/components/schemas/AlertPriority"
},
"alertKey": {
"type": "string"
},
"assignedTo": {
"type": "object",
"properties": {
"id": {
"type": "number"
}
},
"description": "This field (type: User) is deprecated, please use 'responders' instead"
},
"nextEscalation": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"escalationRules": {
"type": "array",
"readOnly": true,
"items": {
"$ref": "#/components/schemas/EscalationRule"
}
},
"nextEscalationUser": {
"$ref": "#/components/schemas/User"
},
"nextEscalationRuleIndex": {
"type": "number",
"readOnly": true
},
"images": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventImage"
}
},
"links": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventLink"
}
},
"responders": {
"type": "array",
"readOnly": true,
"items": {
"$ref": "#/components/schemas/AlertResponder"
}
}
}
},
"EventImage": {
"type": "object",
"properties": {
"src": {
"type": "string"
},
"href": {
"type": "string"
},
"alt": {
"type": "string"
}
}
},
"EventLink": {
"type": "object",
"properties": {
"href": {
"type": "string"
},
"text": {
"type": "string"
}
}
},
"EventComment": {
"type": "object",
"properties": {
"creator": {
"type": "string"
},
"content": {
"type": "string"
}
}
},
"EventServiceRef": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64",
"description": "Optional service id for rare edge cases. Prefer alias."
},
"alias": {
"type": "string",
"description": "Service alias (preferred)."
}
}
},
"SuggestedResponder": {
"type": "object",
"properties": {
"group": {
"type": "string",
"enum": [
"SUGGESTED",
"USER",
"ESCALATION_POLICY",
"ON_CALL_SCHEDULE"
]
},
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"disabled": {
"type": "boolean"
}
}
},
"Notification": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"method": {
"type": "string",
"enum": [
"PUSH",
"VOICE",
"SMS",
"EMAIL",
"WHATSAPP"
]
},
"target": {
"type": "string"
},
"subject": {
"type": "string"
},
"alertId": {
"type": "integer",
"format": "int64"
},
"user": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"firstname": {
"type": "string"
},
"lastname": {
"type": "string"
}
}
},
"notificationTime": {
"type": "string",
"format": "date-time"
},
"status": {
"type": "string",
"enum": [
"SCHEDULED",
"SUCCESS",
"ERROR"
]
},
"errorMessage": {
"type": "string",
"description": "An error message in case the notification status is ERROR."
}
}
},
"LogEntry": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"timestamp": {
"type": "string",
"format": "date-time"
},
"logEntryType": {
"type": "string",
"enum": [
"ConnectorAutomaticResultErrorLogEntry",
"ConnectorAutomaticResultLogEntry",
"AlertActionErrorLogEntry",
"AlertActionFailLogEntry",
"AlertActionSuccessLogEntry",
"AlertNotRoutedLogEntry",
"AlertReceivedLogEntry",
"AlertRoutedSuccessfulLogEntry",
"AlertSourceResponseLogEntry",
"CallLogEntry",
"EmailReceivedLogEntry",
"EmailResolvedLogEntry",
"FilterableLogEntryType",
"HeartbeatOverdueLogEntry",
"HeartbeatResolvedLogEntry",
"AlertAssignedBySystemLogEntry",
"AlertAssignedByUserLogEntry",
"AlertAssignedToPolicyLogEntry",
"AlertAssignedToScheduleLogEntry",
"AlertAutoResolvedLogEntry",
"AlertCommentAddedBySystemLogEntry",
"AlertCommentAddedLogEntry",
"AlertCommentPublishedLogEntry",
"AlertCreatedByUserLogEntry",
"AlertRaisedBySystemLogEntry",
"AlertRaisedByUserLogEntry",
"AlertSummaryChangedLogEntry",
"IncomingCallLogEntry",
"LowPriorityCallLog",
"MailboxCallLogEntry",
"MailboxRecordReceivedLog",
"MailboxTranscribedReceivedLog",
"NobodyOnCallLogEntry",
"NotificationLogEntry",
"ParallelCallLogEntry",
"PhoneNumberNotSetLogEntry",
"PhoneNumberBlockedLogEntry",
"QueueResultLogEntry",
"StakeholderAddedBySystemLogEntry",
"StakeholderAddedLogEntry",
"StakeholderRemovedLogEntry",
"StakeholderResubscribedLogEntry",
"StakeholderUnsubscribedLogEntry",
"UserResponseLogEntry",
"InComIncidentCreatedLogEntry",
"InComIncidentResolvedLogEntry",
"InComServiceTransitionLogEntry",
"InComLinkedLogEntry",
"InComUnlinkedLogEntry",
"AlertChannelAttachedByUserLogEntry",
"AlertChannelDetachedByUserLogEntry",
"AlertEscalatedToLevelLogEntry"
]
},
"text": {
"type": "string"
},
"alertId": {
"type": "integer",
"format": "int64"
},
"filterTypes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LogFilterType"
}
},
"vars": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
},
"LogFilterType": {
"type": "string",
"enum": [
"NOTIFICATIONS",
"ALERT_SOURCE_EVENTS",
"CALL_ROUTING_EVENTS",
"ALERT_UPDATES",
"CONNECTOR_EVENTS"
]
},
"SingleTimePoint": {
"required": [
"value"
],
"type": "object",
"properties": {
"timestamp": {
"type": "number",
"description": "The unix epoch second of your time point",
"format": "int64"
},
"value": {
"type": "number",
"description": "Value of your time point",
"format": "double"
}
}
},
"MultipleTimePoint": {
"type": "object",
"properties": {
"series": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SingleTimePoint"
}
}
}
},
"SeriesOption": {
"type": "object",
"description": "Can either be a single time point, omitting timestamp field is allowed as it will be replaced with now() - or a series of multiple time points",
"oneOf": [
{
"$ref": "#/components/schemas/SingleTimePoint"
},
{
"$ref": "#/components/schemas/MultipleTimePoint"
}
]
},
"MetricAggregationType": {
"type": "string",
"enum": [
"AVG",
"SUM",
"MIN",
"MAX",
"LAST"
]
},
"MetricDisplayType": {
"type": "string",
"enum": [
"GRAPH",
"SINGLE"
]
},
"MetricDataSourceType": {
"type": "string",
"enum": [
"DATADOG",
"PROMETHEUS"
]
},
"Event": {
"required": [
"integrationKey",
"eventType",
"summary"
],
"type": "object",
"properties": {
"integrationKey": {
"type": "string"
},
"eventType": {
"type": "string",
"description": "the event type",
"enum": [
"ALERT",
"ACCEPT",
"RESOLVE",
"COMMENT"
]
},
"summary": {
"type": "string",
"description": "The event summary. Will be used as the alert summary if a new alert will be created."
},
"details": {
"type": "string",
"description": "The event details. Will be used as the alert details if a new alert will be created."
},
"alertKey": {
"type": "string",
"description": "Used to deduplicate events. If an open alert with the key already exists, the event will be appended to the alert's event log. Otherwise a new alert will be created. We will trim this value if necessary. Upper casing is allowed, however comparison is case insensitive."
},
"priority": {
"$ref": "#/components/schemas/AlertPriority"
},
"severity": {
"maximum": 5,
"minimum": 1,
"type": "integer",
"format": "int32",
"description": "Optional severity in range 1..5. Will overwrite the evaluated severity of the alert source."
},
"images": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventImage"
}
},
"links": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventLink"
}
},
"comments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventComment"
}
},
"labels": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Optional key/value labels that are attached to the alert."
},
"services": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventServiceRef"
},
"description": "Optional list of service refs. Usually pass alias; id is optional for rare edge cases."
},
"customDetails": {
"type": "object",
"additionalProperties": true
},
"routingKey": {
"type": "string",
"description": "Optional routing key that overwrites the escalation policy of the alert source for ALERT events. Must map to routingKey of escalation policy"
}
}
},
"EventResponse": {
"type": "object"
},
"CountResponse": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"format": "int64"
}
}
},
"RestError": {
"type": "object",
"properties": {
"status": {
"type": "integer"
},
"message": {
"type": "string"
}
}
},
"AlertActionTrigger": {
"type": "object",
"properties": {
"alertActionId": {
"type": "string"
},
"connectorId": {
"type": "string"
},
"type": {
"type": "string"
},
"name": {
"type": "string"
},
"iconUrl": {
"type": "string"
},
"history": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AlertActionResult"
}
}
}
},
"AlertActionResult": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"alertActionId": {
"type": "string"
},
"connectorId": {
"type": "string"
},
"alertId": {
"type": "number"
},
"success": {
"type": "boolean"
},
"actor": {
"$ref": "#/components/schemas/User"
}
}
},
"IncidentStatus": {
"type": "string",
"description": "the incident status",
"enum": [
"INVESTIGATING",
"IDENTIFIED",
"MONITORING",
"RESOLVED"
]
},
"IncidentTemplate": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"summary": {
"type": "string"
},
"status": {
"$ref": "#/components/schemas/IncidentStatus"
},
"message": {
"type": "string"
},
"sendNotification": {
"type": "boolean"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
}
}
},
"ServiceStatus": {
"type": "string",
"description": "the service status",
"enum": [
"OPERATIONAL",
"UNDER_MAINTENANCE",
"DEGRADED",
"PARTIAL_OUTAGE",
"MAJOR_OUTAGE"
]
},
"ServiceOutage": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/ServiceStatus"
},
"from": {
"type": "string",
"format": "date-time"
},
"until": {
"type": "string",
"format": "date-time"
}
}
},
"ServiceOutageOverride": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"service": {
"$ref": "#/components/schemas/ServiceNoIncludes"
},
"status": {
"$ref": "#/components/schemas/ServiceStatus"
},
"from": {
"type": "string",
"format": "date-time"
},
"until": {
"type": "string",
"format": "date-time"
}
}
},
"ServiceUptimePercentage": {
"type": "object",
"properties": {
"uptimePercentage": {
"type": "object",
"properties": {
"p90": {
"maximum": 100,
"minimum": 0,
"type": "number",
"format": "float",
"readOnly": true
},
"p60": {
"maximum": 100,
"minimum": 0,
"type": "number",
"format": "float",
"readOnly": true
},
"p30": {
"maximum": 100,
"minimum": 0,
"type": "number",
"format": "float",
"readOnly": true
}
}
}
}
},
"ServiceUptime": {
"type": "object",
"properties": {
"rangeStart": {
"type": "string",
"format": "date-time"
},
"rangeEnd": {
"type": "string",
"format": "date-time"
},
"outages": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ServiceOutage"
}
},
"uptimePercentage": {
"$ref": "#/components/schemas/ServiceUptimePercentage"
}
}
},
"Service": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"alias": {
"type": "string"
},
"status": {
"$ref": "#/components/schemas/ServiceStatus"
},
"description": {
"type": "string"
},
"oneOpenIncidentOnly": {
"type": "boolean"
},
"showUptimeHistory": {
"type": "boolean"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"subscribed": {
"type": "boolean",
"readOnly": true
},
"uptime": {
"$ref": "#/components/schemas/ServiceUptime"
},
"incidents": {
"type": "array",
"description": "Note that this only contains the latest 10 unresolved incidents, use /api/incidents?service=x if more or specific results are needed",
"readOnly": true,
"items": {
"$ref": "#/components/schemas/IncidentNoIncludes"
}
}
}
},
"ServiceUptimeOnly": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"status": {
"$ref": "#/components/schemas/ServiceStatus"
},
"description": {
"type": "string"
},
"oneOpenIncidentOnly": {
"type": "boolean"
},
"showUptimeHistory": {
"type": "boolean"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"uptime": {
"$ref": "#/components/schemas/ServiceUptime"
}
}
},
"ServiceNoIncludes": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"alias": {
"type": "string"
},
"status": {
"$ref": "#/components/schemas/ServiceStatus"
},
"description": {
"type": "string"
},
"oneOpenIncidentOnly": {
"type": "boolean"
},
"showUptimeHistory": {
"type": "boolean"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
}
}
},
"Incident": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"summary": {
"type": "string"
},
"status": {
"$ref": "#/components/schemas/IncidentStatus"
},
"message": {
"type": "string"
},
"sendNotification": {
"type": "boolean"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"affectedServices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"impact": {
"$ref": "#/components/schemas/ServiceStatus"
},
"service": {
"$ref": "#/components/schemas/ServiceNoIncludes"
}
}
}
},
"resolvedOn": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"subscribed": {
"type": "boolean",
"readOnly": true
},
"affectedTeams": {
"type": "array",
"readOnly": true,
"items": {
"$ref": "#/components/schemas/TeamRel"
}
}
}
},
"IncidentUpdate": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"content": {
"type": "string"
},
"creator": {
"$ref": "#/components/schemas/UserRel"
},
"incidentStatus": {
"$ref": "#/components/schemas/IncidentStatus"
},
"sendNotification": {
"type": "boolean"
},
"createdAt": {
"type": "string",
"format": "date-time"
}
}
},
"IncidentWithHistory": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"summary": {
"type": "string"
},
"status": {
"$ref": "#/components/schemas/IncidentStatus"
},
"message": {
"type": "string"
},
"sendNotification": {
"type": "boolean"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"history": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IncidentUpdate"
}
},
"affectedServices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"impact": {
"$ref": "#/components/schemas/ServiceStatus"
},
"service": {
"$ref": "#/components/schemas/ServiceNoIncludes"
}
}
}
},
"resolvedOn": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"subscribed": {
"type": "boolean",
"readOnly": true
},
"affectedTeams": {
"type": "array",
"readOnly": true,
"items": {
"$ref": "#/components/schemas/TeamRel"
}
}
}
},
"IncidentNoIncludes": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"summary": {
"type": "string"
},
"status": {
"$ref": "#/components/schemas/IncidentStatus"
},
"message": {
"type": "string"
},
"sendNotification": {
"type": "boolean"
},
"createdAt": {
"type": "string",
"description": "May be overwritten during the creation of the incident, otherwise read-only",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"description": "May be overwritten during the creation of the incident, otherwise read-only",
"format": "date-time"
},
"affectedServices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"impact": {
"$ref": "#/components/schemas/ServiceStatus"
},
"service": {
"$ref": "#/components/schemas/ServiceNoIncludes"
}
}
}
},
"resolvedOn": {
"type": "string",
"format": "date-time",
"readOnly": true
}
}
},
"UIMenuItem": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"label": {
"type": "string"
}
}
},
"TeamUserOption": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"USER",
"TEAM"
]
}
}
},
"StatusPageGroup": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
}
}
},
"StatusPageNoIncludes": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"domain": {
"type": "string"
},
"subdomain": {
"type": "string"
},
"timezone": {
"$ref": "#/components/schemas/TimeZone"
},
"faviconUrl": {
"type": "string"
},
"logoUrl": {
"type": "string"
},
"visibility": {
"type": "string",
"enum": [
"PRIVATE",
"PUBLIC"
]
},
"hiddenFromSearch": {
"type": "boolean"
},
"showSubscribeAction": {
"type": "boolean"
},
"showIncidentHistoryOption": {
"type": "boolean"
},
"pageTitle": {
"type": "string"
},
"pageDescription": {
"type": "string"
},
"pageLayout": {
"type": "string",
"enum": [
"SINGLE_COLUMN",
"RESPONSIVE"
]
},
"logoRedirectUrl": {
"type": "string"
},
"activated": {
"type": "boolean"
},
"status": {
"$ref": "#/components/schemas/ServiceStatus"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"services": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ServiceNoIncludes"
}
},
"metrics": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MetricNoIncludes"
}
},
"ipWhitelist": {
"type": "array",
"description": "ipv4 or ipv6 addresses to give access to. Can only be set on 'PRIVATE' status pages",
"items": {
"type": "string"
}
},
"structure": {
"$ref": "#/components/schemas/StatusPageStructure"
},
"appearance": {
"type": "string",
"enum": [
"LIGHT",
"DARK"
]
}
}
},
"StatusPageElement": {
"required": [
"id",
"type"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The id of the service or group that this element references",
"format": "int64"
},
"type": {
"type": "string",
"enum": [
"SERVICE",
"GROUP"
]
},
"options": {
"type": "string",
"description": "Note: 'expand' can only be set when type is 'SERVICE', 'no-graph' can only be set when type is 'GROUP'",
"enum": [
"expand",
"no-graph"
]
},
"children": {
"type": "array",
"description": "Optional children of this element. Note: children may only be added to elements of type 'GROUP'",
"items": {
"$ref": "#/components/schemas/StatusPageElement"
}
}
}
},
"StatusPageStructure": {
"type": "object",
"properties": {
"elements": {
"type": "array",
"items": {
"$ref": "#/components/schemas/StatusPageElement"
}
}
},
"description": "This field is not available in the list resource. Describes the structure of a status page. Allows for nesting children. It is not required unless groups are used."
},
"StatusPage": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"domain": {
"type": "string"
},
"subdomain": {
"type": "string"
},
"timezone": {
"$ref": "#/components/schemas/TimeZone"
},
"faviconUrl": {
"type": "string"
},
"logoUrl": {
"type": "string"
},
"visibility": {
"type": "string",
"enum": [
"PRIVATE",
"PUBLIC"
]
},
"hiddenFromSearch": {
"type": "boolean"
},
"showSubscribeAction": {
"type": "boolean"
},
"showIncidentHistoryOption": {
"type": "boolean"
},
"pageTitle": {
"type": "string"
},
"pageDescription": {
"type": "string"
},
"pageLayout": {
"type": "string",
"enum": [
"SINGLE_COLUMN",
"RESPONSIVE"
]
},
"logoRedirectUrl": {
"type": "string"
},
"activated": {
"type": "boolean"
},
"status": {
"$ref": "#/components/schemas/ServiceStatus"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"services": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ServiceUptimeOnly"
}
},
"metrics": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MetricNoIncludes"
}
},
"ipWhitelist": {
"type": "array",
"description": "ipv4 or ipv6 addresses to give access to. Can only be set on 'PRIVATE' status pages",
"items": {
"type": "string"
}
},
"structure": {
"$ref": "#/components/schemas/StatusPageStructure"
},
"subscribed": {
"type": "boolean",
"description": "This is an include field, it is not available in the list resource",
"readOnly": true
},
"groups": {
"type": "array",
"description": "This is an include field, it is not available in the list resource. Read-only, use the sub resource to manipulate groups.",
"readOnly": true,
"items": {
"$ref": "#/components/schemas/StatusPageGroup"
}
},
"appearance": {
"type": "string",
"enum": [
"LIGHT",
"DARK"
]
},
"announcement": {
"type": "string",
"description": "This is an include field, it is not available in the list resource"
},
"announcementOnPage": {
"type": "boolean",
"description": "If the announcement should be displayed on the status page"
},
"announcementInWidget": {
"type": "boolean",
"description": "If the announcement should be displayed in the popup widget"
},
"audienceSpecific": {
"type": "boolean",
"default": false,
"description": "If a private status page should move into audience specific mode"
}
}
},
"StatusPageList": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"domain": {
"type": "string"
},
"subdomain": {
"type": "string"
},
"timezone": {
"$ref": "#/components/schemas/TimeZone"
},
"faviconUrl": {
"type": "string"
},
"logoUrl": {
"type": "string"
},
"visibility": {
"type": "string",
"enum": [
"PRIVATE",
"PUBLIC"
]
},
"hiddenFromSearch": {
"type": "boolean"
},
"showSubscribeAction": {
"type": "boolean"
},
"showIncidentHistoryOption": {
"type": "boolean"
},
"pageTitle": {
"type": "string"
},
"pageDescription": {
"type": "string"
},
"logoRedirectUrl": {
"type": "string"
},
"activated": {
"type": "boolean"
},
"status": {
"$ref": "#/components/schemas/ServiceStatus"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"services": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ServiceUptimeOnly"
}
},
"metrics": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MetricNoIncludes"
}
},
"ipWhitelist": {
"type": "array",
"description": "ipv4 or ipv6 addresses to give access to. Can only be set on 'PRIVATE' status pages",
"items": {
"type": "string"
}
},
"subscribed": {
"type": "boolean",
"description": "This is an include field, it is not available in the list resource",
"readOnly": true
},
"announcement": {
"type": "string",
"description": "This is an include field, it is not available in the list resource"
},
"announcementOnPage": {
"type": "boolean",
"description": "If the announcement should be displayed on the status page"
},
"announcementInWidget": {
"type": "boolean",
"description": "If the announcement should be displayed in the popup widget"
},
"audienceSpecific": {
"type": "boolean",
"default": false,
"description": "If a private status page should move into audience specific mode"
}
}
},
"MParamsDatadog": {
"required": [
"apiKey",
"applicationKey",
"region"
],
"type": "object",
"properties": {
"region": {
"type": "string"
},
"apiKey": {
"type": "string"
},
"applicationKey": {
"type": "string"
}
}
},
"MParamsPrometheus": {
"required": [
"authType",
"url"
],
"type": "object",
"properties": {
"url": {
"type": "string"
},
"authType": {
"type": "string",
"enum": [
"NONE",
"BASIC",
"HEADER"
]
},
"basicUser": {
"type": "string",
"description": "Optional, required for 'BASIC'"
},
"basicPass": {
"type": "string",
"description": "Optional, required for 'BASIC'"
},
"headerKey": {
"type": "string",
"description": "Optional, required for 'HEADER'"
},
"headerValue": {
"type": "string",
"description": "Optional, required for 'HEADER'"
}
}
},
"MetricDataSourceMetadata": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/MParamsDatadog"
},
{
"$ref": "#/components/schemas/MParamsPrometheus"
}
]
},
"MetricDataSource": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"type": {
"$ref": "#/components/schemas/MetricDataSourceType"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"metadata": {
"$ref": "#/components/schemas/MetricDataSourceMetadata"
}
}
},
"MetricDataSourcePost": {
"required": [
"metadata",
"name",
"type"
],
"type": "object",
"properties": {
"name": {
"type": "string"
},
"type": {
"$ref": "#/components/schemas/MetricDataSourceType"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"metadata": {
"$ref": "#/components/schemas/MetricDataSourceMetadata"
}
}
},
"MetricDataSourceNoIncludes": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"type": {
"$ref": "#/components/schemas/MetricDataSourceType"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
}
}
},
"MDataDogMetadata": {
"required": [
"query"
],
"type": "object",
"properties": {
"query": {
"type": "string"
}
}
},
"MPrometheusMetadata": {
"required": [
"query"
],
"type": "object",
"properties": {
"query": {
"type": "string"
}
}
},
"MetricMetadata": {
"type": "object",
"description": "Only required if the metric has a dataSource. You may not change this after creation.",
"default": "null",
"oneOf": [
{
"$ref": "#/components/schemas/MDataDogMetadata"
},
{
"$ref": "#/components/schemas/MPrometheusMetadata"
}
]
},
"MetricList": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"aggregationType": {
"$ref": "#/components/schemas/MetricAggregationType"
},
"displayType": {
"$ref": "#/components/schemas/MetricDisplayType"
},
"interpolateGaps": {
"type": "boolean",
"default": false
},
"lockYAxisMax": {
"type": "number",
"format": "double"
},
"lockYAxisMin": {
"type": "number",
"format": "double"
},
"mouseOverDecimal": {
"maximum": 6,
"minimum": 0,
"type": "number",
"format": "int32"
},
"showValuesOnMouseOver": {
"type": "boolean",
"default": false
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"unitLabel": {
"type": "string"
},
"integrationKey": {
"type": "string"
},
"dataSource": {
"$ref": "#/components/schemas/MetricDataSourceNoIncludes"
}
}
},
"Metric": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"aggregationType": {
"$ref": "#/components/schemas/MetricAggregationType"
},
"displayType": {
"$ref": "#/components/schemas/MetricDisplayType"
},
"interpolateGaps": {
"type": "boolean",
"default": false
},
"lockYAxisMax": {
"type": "number",
"format": "double"
},
"lockYAxisMin": {
"type": "number",
"format": "double"
},
"mouseOverDecimal": {
"maximum": 6,
"minimum": 0,
"type": "number",
"format": "int32"
},
"showValuesOnMouseOver": {
"type": "boolean",
"default": false
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"unitLabel": {
"type": "string"
},
"integrationKey": {
"type": "string"
},
"metadata": {
"$ref": "#/components/schemas/MetricMetadata"
},
"dataSource": {
"$ref": "#/components/schemas/MetricDataSource"
}
}
},
"MetricNoIncludes": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"aggregationType": {
"$ref": "#/components/schemas/MetricAggregationType"
},
"displayType": {
"$ref": "#/components/schemas/MetricDisplayType"
},
"interpolateGaps": {
"type": "boolean",
"default": false
},
"lockYAxisMax": {
"type": "number",
"format": "double"
},
"lockYAxisMin": {
"type": "number",
"format": "double"
},
"mouseOverDecimal": {
"maximum": 6,
"minimum": 0,
"type": "number",
"format": "int32"
},
"showValuesOnMouseOver": {
"type": "boolean",
"default": false
},
"unitLabel": {
"type": "string"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
}
}
},
"MetricPost": {
"required": [
"aggregationType",
"displayType",
"name"
],
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"aggregationType": {
"$ref": "#/components/schemas/MetricAggregationType"
},
"displayType": {
"$ref": "#/components/schemas/MetricDisplayType"
},
"interpolateGaps": {
"type": "boolean",
"default": false
},
"lockYAxisMax": {
"type": "number",
"format": "double"
},
"lockYAxisMin": {
"type": "number",
"format": "double"
},
"mouseOverDecimal": {
"maximum": 6,
"minimum": 0,
"type": "number",
"format": "int32"
},
"showValuesOnMouseOver": {
"type": "boolean",
"default": false
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"unitLabel": {
"type": "string"
},
"metadata": {
"$ref": "#/components/schemas/MetricMetadata"
},
"dataSource": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "dataSource is required when providing metadata"
}
}
}
}
},
"DeploymentPipeline": {
"type": "object",
"required": [
"name",
"integrationType"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"integrationType": {
"type": "string"
},
"integrationKey": {
"type": "string"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"createdAt": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updatedAt": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"params": {
"$ref": "#/components/schemas/DeploymentPipelineParams"
},
"integrationUrl": {
"type": "string"
}
}
},
"DeploymentPipelineParams": {
"type": "object",
"description": "Dynamic params based on the chosen integration type of the pipeline",
"default": "null",
"oneOf": [
{
"$ref": "#/components/schemas/DPipeAPIParams"
},
{
"$ref": "#/components/schemas/DPipeGithubParams"
}
]
},
"DPipeGithubParams": {
"type": "object",
"description": "Deployment pipeline Github integration params",
"properties": {
"branchFilters": {
"type": "array",
"items": {
"type": "string"
}
},
"eventFilters": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"DPipeAPIParams": {
"type": "object",
"description": "Deployment pipeline API integration params",
"default": null,
"properties": {}
},
"DeploymentEvent": {
"type": "object",
"required": [
"integrationKey",
"summary"
],
"properties": {
"integrationKey": {
"type": "string"
},
"summary": {
"type": "string"
},
"timestamp": {
"type": "integer",
"format": "int64"
},
"userEmail": {
"description": "Optional email used to map the event to a specific user in ilert",
"type": "string",
"format": "email"
},
"customDetails": {
"type": "object",
"additionalProperties": true
},
"links": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventLink"
}
}
}
},
"DynamicValue": {
"nullable": true,
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "object",
"additionalProperties": true
},
{
"type": "array",
"items": {}
}
]
},
"EventFlow": {
"type": "object",
"required": [
"name",
"root"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"root": {
"$ref": "#/components/schemas/EventFlowNode"
}
}
},
"EventFlowListItem": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
}
}
},
"EventFlowNode": {
"type": "object",
"required": [
"nodeType"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"nodeType": {
"type": "string",
"enum": [
"ROOT",
"SUPPORT_HOURS",
"ROUTE_EVENT",
"DEFINE_BRANCHES",
"WAIT",
"TRANSFORM"
]
},
"metadata": {
"$ref": "#/components/schemas/EventFlowNodeMetadata"
},
"branches": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventFlowBranch"
}
}
}
},
"EventFlowBranch": {
"type": "object",
"required": [
"branchType"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"branchType": {
"type": "string",
"enum": [
"BRANCH",
"CATCH_ALL",
"ACCEPTED"
]
},
"condition": {
"type": "string"
},
"target": {
"$ref": "#/components/schemas/EventFlowNode"
}
}
},
"EventFlowNodeMetadata": {
"oneOf": [
{
"$ref": "#/components/schemas/EventFlowNodeMetadataSupportHours"
},
{
"$ref": "#/components/schemas/EventFlowNodeMetadataRouteEvent"
},
{
"$ref": "#/components/schemas/EventFlowNodeMetadataDefineBranches"
},
{
"$ref": "#/components/schemas/EventFlowNodeMetadataWait"
},
{
"$ref": "#/components/schemas/EventFlowNodeMetadataTransform"
}
]
},
"EventFlowNodeMetadataSupportHours": {
"type": "object",
"required": [
"supportHoursId"
],
"properties": {
"supportHoursId": {
"type": "integer",
"format": "int64"
}
}
},
"EventFlowNodeMetadataRouteEvent": {
"type": "object",
"required": [
"alertSourceId"
],
"properties": {
"alertSourceId": {
"type": "integer",
"format": "int64"
},
"overwritePriority": {
"type": "string",
"enum": [
"HIGH",
"LOW"
]
},
"escalationPolicyId": {
"type": "integer",
"format": "int64"
}
}
},
"EventFlowNodeMetadataDefineBranches": {
"type": "object",
"properties": {
"definitions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventFlowNodeDefinition"
}
}
}
},
"EventFlowNodeMetadataWait": {
"type": "object",
"properties": {
"waitForDuration": {
"type": "string"
},
"waitStartSupportHoursId": {
"type": "integer",
"format": "int64"
},
"waitEndSupportHoursId": {
"type": "integer",
"format": "int64"
}
}
},
"EventFlowNodeMetadataTransform": {
"type": "object",
"properties": {
"condition": {
"type": "string"
},
"rules": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventFlowNodeRule"
}
}
}
},
"EventFlowNodeDefinition": {
"type": "object",
"required": [
"branchName"
],
"properties": {
"branchName": {
"type": "string"
},
"conditions": {
"type": "string"
}
}
},
"EventFlowNodeRule": {
"type": "object",
"required": [
"name",
"target",
"operator"
],
"properties": {
"name": {
"type": "string"
},
"target": {
"type": "string"
},
"operator": {
"type": "string",
"enum": [
"SET",
"COPY",
"MAP",
"TEMPLATE",
"MERGE",
"APPEND_ARRAY"
]
},
"value": {
"$ref": "#/components/schemas/DynamicValue"
},
"source": {
"type": "string"
},
"mapping": {
"type": "object",
"additionalProperties": {
"type": "string",
"nullable": true
}
},
"default": {
"$ref": "#/components/schemas/DynamicValue"
},
"properties": {
"type": "object",
"additionalProperties": {
"type": "string",
"nullable": true
}
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": {
"type": "string",
"nullable": true
}
}
}
}
},
"CallFlow": {
"type": "object",
"required": [
"name",
"language",
"root"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"language": {
"type": "string",
"enum": [
"de",
"en"
]
},
"assignedNumber": {
"$ref": "#/components/schemas/CallFlowNumber"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
},
"root": {
"$ref": "#/components/schemas/CallFlowNode"
}
}
},
"CallFlowListItem": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"assignedNumber": {
"$ref": "#/components/schemas/CallFlowNumber"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TeamRel"
}
}
}
},
"CallFlowNode": {
"type": "object",
"required": [
"nodeType"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"nodeType": {
"type": "string",
"enum": [
"ROOT",
"IVR_MENU",
"AUDIO_MESSAGE",
"SUPPORT_HOURS",
"ROUTE_CALL",
"PARALLEL_ROUTE_CALL",
"VOICEMAIL",
"PIN_CODE",
"CREATE_ALERT",
"BLOCK_NUMBERS",
"AGENTIC"
]
},
"metadata": {
"$ref": "#/components/schemas/CallFlowNodeMetadata"
},
"branches": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CallFlowBranch"
}
}
}
},
"CallFlowBranch": {
"type": "object",
"required": [
"branchType"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"branchType": {
"type": "string",
"enum": [
"BRANCH",
"CATCH_ALL",
"ANSWERED"
]
},
"condition": {
"type": "string"
},
"target": {
"$ref": "#/components/schemas/CallFlowNode"
}
}
},
"CallFlowNumber": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"phoneNumber": {
"$ref": "#/components/schemas/PhoneNumber"
}
}
},
"CallFlowNumberDetails": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"state": {
"$ref": "#/components/schemas/CallFlowNumberState"
},
"phoneNumber": {
"$ref": "#/components/schemas/PhoneNumber"
},
"assignedTo": {
"$ref": "#/components/schemas/CallFlowNumberAssignedTo"
}
}
},
"CallFlowNumberAssignedTo": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
}
}
},
"CallFlowNumberState": {
"type": "string",
"enum": [
"AVAILABLE",
"USED"
]
},
"PhoneNumber": {
"type": "object",
"properties": {
"regionCode": {
"type": "string"
},
"number": {
"type": "string"
}
}
},
"CallFlowNodeMetadata": {
"oneOf": [
{
"$ref": "#/components/schemas/CallFlowNodeMetadataAudioMessage"
},
{
"$ref": "#/components/schemas/CallFlowNodeMetadataIvrMenu"
},
{
"$ref": "#/components/schemas/CallFlowNodeMetadataVoicemail"
},
{
"$ref": "#/components/schemas/CallFlowNodeMetadataPinCode"
},
{
"$ref": "#/components/schemas/CallFlowNodeMetadataSupportHours"
},
{
"$ref": "#/components/schemas/CallFlowNodeMetadataRouteCall"
},
{
"$ref": "#/components/schemas/CallFlowNodeMetadataCreateAlert"
},
{
"$ref": "#/components/schemas/CallFlowNodeMetadataBlockNumbers"
},
{
"$ref": "#/components/schemas/CallFlowNodeMetadataAgentic"
}
]
},
"CallFlowNodeMetadataAudioMessage": {
"type": "object",
"properties": {
"textMessage": {
"type": "string"
},
"customAudioUrl": {
"type": "string"
},
"language": {
"type": "string",
"enum": [
"en",
"de",
"fr",
"es",
"nl",
"ru",
"it"
]
},
"aiVoiceModel": {
"type": "string",
"enum": [
"emma",
"liam",
"isabelle",
"gordon",
"ivy",
"ellen"
]
}
}
},
"CallFlowNodeMetadataIvrMenu": {
"type": "object",
"required": [
"enabledOptions"
],
"properties": {
"textMessage": {
"type": "string"
},
"customAudioUrl": {
"type": "string"
},
"enabledOptions": {
"type": "array",
"items": {
"type": "string"
}
},
"aiVoiceModel": {
"type": "string",
"enum": [
"emma",
"liam",
"isabelle",
"gordon",
"ivy",
"ellen"
]
},
"language": {
"type": "string",
"enum": [
"en",
"de",
"fr",
"es",
"nl",
"ru",
"it"
]
},
"retries": {
"type": "integer",
"format": "int64"
}
}
},
"CallFlowNodeMetadataVoicemail": {
"type": "object",
"properties": {
"textMessage": {
"type": "string"
},
"customAudioUrl": {
"type": "string"
},
"language": {
"type": "string",
"enum": [
"en",
"de",
"fr",
"es",
"nl",
"ru",
"it"
]
},
"aiVoiceModel": {
"type": "string",
"enum": [
"emma",
"liam",
"isabelle",
"gordon",
"ivy",
"ellen"
]
},
"disableTranscription": {
"type": "boolean"
}
}
},
"CallFlowNodeMetadataPinCode": {
"type": "object",
"required": [
"codes"
],
"properties": {
"textMessage": {
"type": "string"
},
"customAudioUrl": {
"type": "string"
},
"codes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CallFlowNodeMetadataCode"
}
},
"language": {
"type": "string",
"enum": [
"en",
"de",
"fr",
"es",
"nl",
"ru",
"it"
]
},
"retries": {
"type": "integer",
"format": "int64"
},
"aiVoiceModel": {
"type": "string",
"enum": [
"emma",
"liam",
"isabelle",
"gordon",
"ivy",
"ellen"
]
}
}
},
"CallFlowNodeMetadataSupportHours": {
"type": "object",
"required": [
"supportHoursId"
],
"properties": {
"supportHoursId": {
"type": "integer",
"format": "int64"
}
}
},
"CallFlowNodeMetadataRouteCall": {
"type": "object",
"required": [
"targets"
],
"properties": {
"holdAudioUrl": {
"type": "string"
},
"targets": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CallFlowNodeMetadataCallTarget"
}
},
"callStyle": {
"type": "string",
"enum": [
"ORDERED",
"RANDOM",
"PARALLEL"
]
},
"retries": {
"type": "integer",
"format": "int64"
},
"callTimeoutSec": {
"type": "integer",
"format": "int64"
}
}
},
"CallFlowNodeMetadataCreateAlert": {
"type": "object",
"required": [
"alertSourceId"
],
"properties": {
"alertSourceId": {
"type": "integer",
"format": "int64"
},
"acceptAlertOnAnswer": {
"type": "boolean"
}
}
},
"CallFlowNodeMetadataBlockNumbers": {
"type": "object",
"required": [
"blacklist"
],
"properties": {
"blacklist": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"CallFlowNodeMetadataAgentic": {
"type": "object",
"required": [
"textMessage",
"intents"
],
"properties": {
"textMessage": {
"type": "string"
},
"customAudioUrl": {
"type": "string"
},
"language": {
"type": "string",
"enum": [
"en",
"de",
"fr",
"es",
"nl",
"ru",
"it"
]
},
"aiVoiceModel": {
"type": "string",
"enum": [
"emma",
"liam",
"isabelle",
"gordon",
"ivy",
"ellen"
]
},
"intents": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CallFlowNodeMetadataIntent"
}
},
"gathers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CallFlowNodeMetadataGather"
}
},
"enrichment": {
"$ref": "#/components/schemas/CallFlowNodeMetadataEnrichment"
}
}
},
"CallFlowNodeMetadataCode": {
"type": "object",
"required": [
"label"
],
"properties": {
"code": {
"type": "integer",
"format": "int64"
},
"label": {
"type": "string"
}
}
},
"CallFlowNodeMetadataCallTarget": {
"type": "object",
"required": [
"target",
"type"
],
"properties": {
"target": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"USER",
"ON_CALL_SCHEDULE",
"NUMBER"
]
}
}
},
"CallFlowNodeMetadataIntent": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"INCIDENT",
"SYSTEM_OUTAGE",
"SECURITY_BREACH",
"TECHNICAL_SUPPORT",
"INQUIRY"
]
},
"label": {
"type": "string"
},
"description": {
"type": "string"
},
"examples": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"CallFlowNodeMetadataGather": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"CALLER_NAME",
"CONTACT_NUMBER",
"EMAIL",
"INCIDENT",
"AFFECTED_SERVICES"
]
},
"label": {
"type": "string"
},
"varType": {
"type": "string",
"enum": [
"NUMBER",
"DATE",
"BOOLEAN",
"STRING"
]
},
"required": {
"type": "boolean"
},
"question": {
"type": "string"
}
}
},
"CallFlowNodeMetadataEnrichment": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"informationTypes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"INCIDENT",
"MAINTENANCE",
"SERVICE_STATUS"
]
}
},
"sources": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CallFlowNodeMetadataEnrichmentSource"
}
}
}
},
"CallFlowNodeMetadataEnrichmentSource": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"type": {
"type": "string",
"enum": [
"STATUS_PAGE",
"SERVICE"
]
}
}
}
},
"parameters": {
"id": {
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "number"
}
},
"string-id": {
"name": "id",
"in": "path",
"description": "entity ID",
"required": true,
"schema": {
"type": "string"
}
},
"user-id-in-path": {
"name": "user-id",
"in": "path",
"description": "numeric user id",
"required": true,
"schema": {
"type": "string"
}
},
"include": {
"name": "include",
"in": "query",
"description": "Describes optional properties that should be included in the response.",
"schema": {
"type": "string"
}
},
"user-id-in-query": {
"name": "user",
"in": "query",
"description": "numeric user id",
"schema": {
"type": "string"
}
},
"source-id-or-key": {
"name": "source-id",
"in": "path",
"description": "numeric source id or integration key",
"required": true,
"schema": {
"type": "string"
}
},
"requester-id": {
"name": "requester-id",
"in": "query",
"description": "id of the user who requested this operation",
"schema": {
"type": "string"
}
},
"start-index": {
"name": "start-index",
"in": "query",
"description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
"max-results": {
"name": "max-results",
"in": "query",
"description": "the maximum number of results when paging through a list of entities.",
"schema": {
"maximum": 100,
"type": "integer",
"format": "int32",
"default": 50
}
},
"key": {
"name": "key",
"in": "path",
"description": "integration key of resource",
"required": true,
"schema": {
"type": "string"
}
}
},
"securitySchemes": {
"apiKey": {
"type": "apiKey",
"description": "The Bearer API key of your user more info.",
"name": "Authorization",
"in": "header"
}
}
},
"x-original-swagger-version": "2.0"
}