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.5-r.3 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, customDetails) style: form explode: true schema: type: array items: type: string enum: - escalationRules - nextEscalationUser - customDetails 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, severityTemplate, textTemplate, eventFilter, alertKeyTemplate, servicesTemplate, 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 - servicesTemplate - linkTemplates - priorityTemplate - severityTemplate - 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\n\ e.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\n\ Please 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 - DOTCOMMONITOR - UPTIME - HELPSCOUT - SCIENCELOGIC - PULSETIC - WAZUH - SEKOIA 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 - INTELLIGENT_GROUPING 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' severityTemplate: $ref: '#/components/schemas/AlertSourceSeverityTemplate' 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' servicesTemplate: type: array description: 'Optional list of templates that extract service identifiers from the inbound event payload. Each rendered value is comma-split, and each resulting token is resolved against the tenant''s services by alias or name (case-insensitive). Unmatched tokens are silently dropped. Capped at 10 templates and at the alert''s per-event services limit. Note: this field is an ?include, it will not appear in lists.' items: $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.' autoRaiseAlerts: type: boolean description: Only effective when a support hour is linked to this alert source. scoreThreshold: type: number format: double description: Only used when alertCreation is set to INTELLIGENT_GROUPING. severity: type: integer services: type: array items: $ref: '#/components/schemas/Service' setupStatus: type: string enum: - CREATED - CREATED_ADVANCED - CREATED_BIDIRECTIONAL - FINISHED autoCreateServices: type: boolean default: false createdAt: type: string readOnly: true updatedAt: type: string readOnly: true 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 AlertSourceSeverityTemplate: required: - mappings - valueTemplate type: object properties: valueTemplate: $ref: '#/components/schemas/AlertSourceTemplate' mappings: type: array items: $ref: '#/components/schemas/AlertSourceSeverityTemplateMapping' AlertSourceSeverityTemplateMapping: required: - severity - value type: object properties: value: type: string severity: type: integer format: int32 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 - INTELLIGENT_GROUPING 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 autoRaiseAlerts: type: boolean description: Only effective when a support hour is linked to this alert source. scoreThreshold: type: number format: double description: Only used when alertCreation is set to INTELLIGENT_GROUPING. severity: type: integer services: type: array items: $ref: '#/components/schemas/Service' createdAt: type: string readOnly: true updatedAt: type: string 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 - INTELLIGENT_GROUPING 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' severityTemplate: $ref: '#/components/schemas/AlertSourceSeverityTemplate' 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' servicesTemplate: type: array description: 'Optional list of templates that extract service identifiers from the inbound event payload. Each rendered value is comma-split, and each resulting token is resolved against the tenant''s services by alias or name (case-insensitive). Unmatched tokens are silently dropped. Capped at 10 templates and at the alert''s per-event services limit. Note: this field is an ?include, it will not appear in lists.' items: $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.' autoRaiseAlerts: type: boolean description: Only effective when a support hour is linked to this alert source. scoreThreshold: type: number format: double description: Only used when alertCreation is set to INTELLIGENT_GROUPING. severity: type: integer services: type: array items: $ref: '#/components/schemas/Service' setupStatus: type: string enum: - CREATED - CREATED_ADVANCED - CREATED_BIDIRECTIONAL - FINISHED autoCreateServices: type: boolean default: false createdAt: type: string readOnly: true updatedAt: type: string readOnly: true 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' severity: maximum: 5 minimum: 1 type: integer format: int32 description: Optional severity in range 1..5. labels: type: object additionalProperties: type: string description: Optional key/value labels that are attached to the alert. customDetails: type: object additionalProperties: true description: Free-form custom key/value details attached to the alert. This is the original event payload of the integration. Only present with ?include=customDetails on the single-alert GET (not on the list endpoint). linkedIncidentId: type: integer format: int64 readOnly: true description: Id of the incident this alert is linked to, if any. mergedIntoId: type: integer format: int64 readOnly: true description: Id of the alert this alert has been merged into, if any. mergeState: type: string readOnly: true enum: - NONE - MAIN - MERGED description: The merge state of the alert. 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'