{
  "openapi": "3.0.0",
  "info": {
    "title": "ilert REST API",
    "description": "\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](https://api.ilert.com). \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## 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 <a href='https://docs.ilert.com/rest-api/api-version-history' target='_blank'>take a look here</a>.",
    "version": "",
    "x-logo": {
      "url": "./ilert-logo-spaced.png",
      "backgroundColor": "#fafafa",
      "altText": "ilert documentation logo"
    },
    "x-konfig-ignore": {
      "object-with-no-properties": true
    }
  },
  "servers": [
    {
      "url": "/api"
    }
  ],
  "tags": [
    {
      "name": "Notification Preferences"
    },
    {
      "name": "Status Pages"
    },
    {
      "name": "Alerts"
    },
    {
      "name": "Contacts"
    },
    {
      "name": "Schedules"
    },
    {
      "name": "Users"
    },
    {
      "name": "Alert Actions"
    },
    {
      "name": "Teams"
    },
    {
      "name": "Services"
    },
    {
      "name": "Incidents"
    },
    {
      "name": "Service Outages"
    },
    {
      "name": "Escalation Policies"
    },
    {
      "name": "Alert Sources"
    },
    {
      "name": "Support Hours"
    },
    {
      "name": "Connectors"
    },
    {
      "name": "Maintenance Windows"
    },
    {
      "name": "Incident Templates"
    },
    {
      "name": "Automation Rules"
    },
    {
      "name": "Metrics"
    },
    {
      "name": "Metric Data Sources"
    },
    {
      "name": "Heartbeats"
    },
    {
      "name": "Reports"
    },
    {
      "name": "Numbers"
    },
    {
      "name": "Integrations"
    },
    {
      "name": "Events"
    },
    {
      "name": "Series"
    },
    {
      "name": "Log-Entries"
    },
    {
      "name": "Notifications"
    },
    {
      "name": "On-Calls"
    }
  ],
  "paths": {
    "/users/{user-id}": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get the specified user.",
        "operationId": "Users_getUserById",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          }
        ],
        "responses": {
          "200": {
            "description": "the user object",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Users"
        ],
        "summary": "Update an existing user.",
        "operationId": "Users_updateExistingUser",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          }
        ],
        "requestBody": {
          "description": "the user object",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "the updated user",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Users"
        ],
        "summary": "Delete the specified user.",
        "operationId": "Users_deleteUser",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          }
        ],
        "responses": {
          "204": {
            "description": "if deletion was successful"
          }
        }
      }
    },
    "/users/{user-id}/contacts/emails": {
      "get": {
        "tags": [
          "Contacts"
        ],
        "summary": "Get a user's emails",
        "operationId": "Contacts_getUserEmails",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactsGetUserEmailsResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Contacts"
        ],
        "summary": "Create a new email",
        "operationId": "Contacts_addNewEmail",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactEmailPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactEmail"
                }
              }
            }
          }
        }
      }
    },
    "/users/{user-id}/contacts/emails/{id}": {
      "get": {
        "tags": [
          "Contacts"
        ],
        "summary": "Get a specific email",
        "operationId": "Contacts_getEmail",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactEmail"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Contacts"
        ],
        "summary": "Update a user's email",
        "operationId": "Contacts_updateUserEmail",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactEmailPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactEmail"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Contacts"
        ],
        "summary": "Delete the user's specified email",
        "operationId": "Contacts_deleteUserEmail",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "description": "if deletion was successful"
          }
        }
      }
    },
    "/users/{user-id}/contacts/phone-numbers": {
      "get": {
        "tags": [
          "Contacts"
        ],
        "summary": "Get a user's phone numbers",
        "operationId": "Contacts_getUserPhoneNumbers",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactsGetUserPhoneNumbersResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Contacts"
        ],
        "summary": "Create a phone number",
        "operationId": "Contacts_createPhoneNumber",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactPhoneNumberPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactPhoneNumber"
                }
              }
            }
          }
        }
      }
    },
    "/users/{user-id}/contacts/phone-numbers/{id}": {
      "get": {
        "tags": [
          "Contacts"
        ],
        "summary": "Get specific phone number",
        "operationId": "Contacts_getPhoneNumber",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactPhoneNumber"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Contacts"
        ],
        "summary": "Update a user's phone number",
        "operationId": "Contacts_updateUserPhoneNumber",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactPhoneNumberPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactPhoneNumber"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Contacts"
        ],
        "summary": "Delete the user's specified phone number",
        "operationId": "Contacts_deletePhoneNumber",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "description": "if deletion was successful"
          }
        }
      }
    },
    "/users/{user-id}/notification-preferences/alerts": {
      "get": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Get alert notification preferences of a user",
        "operationId": "NotificationPreferences_getUserAlerts",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPreferencesGetUserAlertsResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Create an alert notification preference",
        "operationId": "NotificationPreferences_createAlertPreference",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationPreferencesAlertPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPreferencesAlert"
                }
              }
            }
          }
        }
      }
    },
    "/users/{user-id}/notification-preferences/alerts/{id}": {
      "get": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Get specific notification preferences alert",
        "operationId": "NotificationPreferences_getSpecificAlert",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPreferencesAlert"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Update a user's alert notification preference",
        "operationId": "NotificationPreferences_updateAlertPreference",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationPreferencesAlertPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPreferencesAlert"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Delete the user's specified notification preferences alert",
        "operationId": "NotificationPreferences_deleteUserNotificationPreferencesAlert",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "description": "if deletion was successful"
          }
        }
      }
    },
    "/users/{user-id}/notification-preferences/duties": {
      "get": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Get duty notification preferences of a user",
        "operationId": "NotificationPreferences_getUserDutyPreferences",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPreferencesGetUserDutyPreferencesResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Create a duty notification preference",
        "operationId": "NotificationPreferences_createDuty",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationPreferencesDutyPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPreferencesDuty"
                }
              }
            }
          }
        }
      }
    },
    "/users/{user-id}/notification-preferences/duties/{id}": {
      "get": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Get specific notification preferences duty",
        "operationId": "NotificationPreferences_getSpecificDuty",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPreferencesDuty"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Update a user's duty notification preference",
        "operationId": "NotificationPreferences_updateDutyNotificationPreference",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationPreferencesDutyPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPreferencesDuty"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Delete the user's specified notification preferences duty",
        "operationId": "NotificationPreferences_deleteUserNotificationDuty",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "description": "if deletion was successful"
          }
        }
      }
    },
    "/users/{user-id}/notification-preferences/updates": {
      "get": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Get update notification preferences of a user",
        "operationId": "NotificationPreferences_getUserUpdatePreferences",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPreferencesGetUserUpdatePreferencesResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Create an update notification preference",
        "operationId": "NotificationPreferences_createUpdatePreference",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationPreferencesUpdatePost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPreferencesUpdate"
                }
              }
            }
          }
        }
      }
    },
    "/users/{user-id}/notification-preferences/updates/{id}": {
      "get": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Get specific notification preferences update",
        "operationId": "NotificationPreferences_getSpecificUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPreferencesUpdate"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Update a user's update notification preference",
        "operationId": "NotificationPreferences_updateUserUpdateNotificationPreference",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationPreferencesUpdatePost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPreferencesUpdate"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Delete the user's specified notification preferences update",
        "operationId": "NotificationPreferences_deleteUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "description": "if deletion was successful"
          }
        }
      }
    },
    "/users/{user-id}/notification-preferences/subscriptions": {
      "get": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Get subscription notification preferences of a user",
        "operationId": "NotificationPreferences_getUserSubscriptions",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPreferencesGetUserSubscriptionsResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Create a subscription notification preference",
        "operationId": "NotificationPreferences_createSubscriptionNotificationPreference",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationPreferencesSubscriptionPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPreferencesSubscription"
                }
              }
            }
          }
        }
      }
    },
    "/users/{user-id}/notification-preferences/subscriptions/{id}": {
      "get": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Get specific notification preferences subscription",
        "operationId": "NotificationPreferences_getSpecificSubscription",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPreferencesSubscription"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Update a user's subscription notification preference",
        "operationId": "NotificationPreferences_updateSubscriptionPreference",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationPreferencesSubscriptionPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPreferencesSubscription"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Notification Preferences"
        ],
        "summary": "Delete the user's specified notification preferences subscription",
        "operationId": "NotificationPreferences_deleteSubscription",
        "parameters": [
          {
            "$ref": "#/components/parameters/user-id-in-path"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "description": "if deletion was successful"
          }
        }
      }
    },
    "/numbers": {
      "get": {
        "tags": [
          "Numbers"
        ],
        "summary": "List available phone numbers that ilert uses to send voice and SMS notifications",
        "operationId": "Numbers_listAvailableNumbers",
        "security": [],
        "responses": {
          "200": {
            "description": "List of phone numbers",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NumbersListAvailableNumbersResponse"
                }
              }
            }
          }
        }
      }
    },
    "/integrations": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "summary": "List available inbound and outbound integrations. Note: this resource is paginated.",
        "operationId": "Integrations_listAvailable",
        "security": [],
        "parameters": [
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "$ref": "#/components/parameters/max-results"
          }
        ],
        "responses": {
          "200": {
            "description": "list of integrations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegrationsListAvailableResponse"
                }
              }
            }
          }
        }
      }
    },
    "/users": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "List existing users.",
        "operationId": "Users_listExistingUsers",
        "parameters": [
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "$ref": "#/components/parameters/max-results"
          }
        ],
        "responses": {
          "200": {
            "description": "list of users",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsersListExistingUsersResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Create a new user. Requires ADMIN privileges.",
        "operationId": "Users_createNewUser",
        "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"
              }
            }
          }
        },
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/users/current": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get the currently authenticated user.",
        "operationId": "Users_getCurrentUser",
        "responses": {
          "200": {
            "description": "user object",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Users"
        ],
        "summary": "Update the current user.",
        "operationId": "Users_updateCurrentUser",
        "requestBody": {
          "description": "user object",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "the updated user",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          }
        }
      }
    },
    "/alerts": {
      "post": {
        "tags": [
          "Alerts"
        ],
        "summary": "Create alerts with customised parameters without requiring events from monitoring tools that use our Events API.",
        "operationId": "Alerts_createCustomizedAlert",
        "description": "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"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Alerts"
        ],
        "summary": "List alerts (optionally matching certain criteria that are specified by query parameters).",
        "operationId": "Alerts_listMatchingCriteria",
        "description": "**Sample URLs**\n* List only alerts that are either in state `PENDING` or `ACCEPTED`: <br /> 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: <br />\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): <br />\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: <br/>\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": [
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "$ref": "#/components/parameters/max-results"
          },
          {
            "description": "Describes optional properties that should be included in the response. You may declare multiple. (nextEscalationUser)",
            "name": "include",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "nextEscalationUser"
                ]
              }
            }
          },
          {
            "description": "state of the alert",
            "in": "query",
            "name": "states",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "PENDING",
                  "ACCEPTED",
                  "RESOLVED"
                ]
              }
            }
          },
          {
            "description": "alert source IDs of the alert's alert source",
            "in": "query",
            "name": "sources",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64"
              }
            }
          },
          {
            "description": "escalation policy IDs of the alert's escalation policy",
            "in": "query",
            "name": "policies",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64"
              }
            }
          },
          {
            "description": "user ids of the user that is a responder of the alert",
            "in": "query",
            "name": "responders",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "from date, ISO-UTC e.g. 2021-05-25T21:24:56.771Z, based on reportTime",
            "in": "query",
            "name": "from",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "description": "until date, ISO-UTC e.g. 2021-05-26T21:24:56.771Z, based on reportTime",
            "in": "query",
            "name": "until",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertsListMatchingCriteriaResponse"
                }
              }
            }
          }
        }
      }
    },
    "/alerts/count": {
      "get": {
        "tags": [
          "Alerts"
        ],
        "summary": "Get the alert count matching the specified criteria.",
        "operationId": "Alerts_getAlertCountMatchingCriteria",
        "parameters": [
          {
            "description": "state of the alert",
            "in": "query",
            "name": "states",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "PENDING",
                  "ACCEPTED",
                  "RESOLVED"
                ]
              }
            }
          },
          {
            "description": "alert source IDs of the alert's alert source",
            "in": "query",
            "name": "sources",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64"
              }
            }
          },
          {
            "description": "user ids of the user that is a responder of the alert",
            "in": "query",
            "name": "responders",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "from date",
            "in": "query",
            "name": "from",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "description": "until date",
            "in": "query",
            "name": "until",
            "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.",
        "operationId": "Alerts_getById",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "description": "Describes optional properties that should be included in the response. You may declare multiple. (escalationRules, nextEscalationUser)",
            "name": "include",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "escalationRules",
                  "nextEscalationUser"
                ]
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "alert object",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Alert"
                }
              }
            }
          }
        }
      }
    },
    "/alerts/{id}/suggested-responders": {
      "get": {
        "tags": [
          "Alerts"
        ],
        "summary": "Get available (assignable) responders for the alert with the specified id.",
        "operationId": "Alerts_getAssignableResponders",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "description": "locale for response text eg. 'en' or 'de'",
            "name": "lang",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "the list of alert responders",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertsGetAssignableRespondersResponse"
                }
              }
            }
          }
        }
      }
    },
    "/alerts/{id}/responders": {
      "post": {
        "tags": [
          "Alerts"
        ],
        "summary": "Add an additional responder to the alert.",
        "operationId": "Alerts_addResponder",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "201": {
            "description": "the created alert responder object",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertResponder"
                }
              }
            }
          },
          "404": {
            "description": "Responder did not exist"
          },
          "405": {
            "description": "Responder is already present on the alert"
          }
        }
      }
    },
    "/alerts/{id}/responders/{user-id}": {
      "delete": {
        "tags": [
          "Alerts"
        ],
        "summary": "Remove a responder from the alert.",
        "operationId": "Alerts_removeResponder",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "$ref": "#/components/parameters/user-id-in-path"
          }
        ],
        "responses": {
          "204": {
            "description": "Responder has been removed"
          },
          "404": {
            "description": "Responder did not exist"
          }
        }
      }
    },
    "/alerts/{id}/assign": {
      "put": {
        "tags": [
          "Alerts"
        ],
        "summary": "Assign the alert.",
        "operationId": "Alerts_assignAlertTo",
        "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": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "$ref": "#/components/parameters/user-id-in-query"
          },
          {
            "description": "numeric policy id",
            "name": "policy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "numeric schedule id",
            "name": "schedule",
            "in": "query",
            "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.",
        "operationId": "Alerts_acceptAlert",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "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.",
        "operationId": "Alerts_resolveAlert",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "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.",
        "operationId": "Alerts_getNotifications",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "a list of notification objects",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertsGetNotificationsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/alerts/{id}/log-entries": {
      "get": {
        "tags": [
          "Alerts",
          "Log-Entries"
        ],
        "summary": "Get log entries for the specified alert.",
        "operationId": "Alerts_getLogEntries",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "description": "log entry language",
            "name": "lang",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "de"
              ]
            }
          },
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "$ref": "#/components/parameters/max-results"
          },
          {
            "description": "Describes optional properties that should be included in the response. You may declare multiple. (vars)",
            "name": "include",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "vars"
                ]
              }
            }
          },
          {
            "description": "filter-type (group) of the log",
            "in": "query",
            "name": "filter-types",
            "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": {
                  "$ref": "#/components/schemas/AlertsGetLogEntriesResponse"
                }
              }
            }
          }
        }
      }
    },
    "/alerts/{id}/actions": {
      "get": {
        "tags": [
          "Alert Actions"
        ],
        "summary": "Get available actions for specified alert.",
        "operationId": "AlertActions_getAvailableActions",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "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.",
        "operationId": "AlertActions_invokeSpecificAction",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/schedules": {
      "get": {
        "tags": [
          "Schedules"
        ],
        "summary": "List on-call schedules.",
        "operationId": "Schedules_listOnCallSchedules",
        "parameters": [
          {
            "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])",
            "name": "include",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "scheduleLayers",
                  "shifts",
                  "currentShift",
                  "nextShift",
                  "past"
                ]
              }
            }
          },
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "description": "the maximum number of results when paging through a list of schedules.",
            "in": "query",
            "name": "max-results",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "maximum": 20,
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "a list of on-call schedules",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchedulesListOnCallSchedulesResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Schedules"
        ],
        "summary": "Create a new on-call schedule.",
        "operationId": "Schedules_createNewOnCallSchedule",
        "parameters": [
          {
            "description": "Used for static schedules to prevent creating schedules with gaps",
            "name": "abort-on-gaps",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Schedule"
        },
        "responses": {
          "201": {
            "description": "The created on-call schedule",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Schedule"
                }
              }
            }
          }
        }
      }
    },
    "/schedules/{id}": {
      "get": {
        "tags": [
          "Schedules"
        ],
        "summary": "Get the on-call schedule with the specified id.",
        "operationId": "Schedules_getById",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "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])",
            "name": "include",
            "in": "query",
            "required": false,
            "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.",
        "operationId": "Schedules_updateOnCallSchedule",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "description": "Used for static schedules to prevent updating schedules with gaps",
            "name": "abort-on-gaps",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Schedule"
        },
        "responses": {
          "200": {
            "description": "The updated on-call schedule",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Schedule"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Schedules"
        ],
        "summary": "Delete the on-call schedule with the specified id.",
        "operationId": "Schedules_deleteScheduleById",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "description": "empty response"
          }
        }
      }
    },
    "/schedules/{id}/shifts": {
      "get": {
        "tags": [
          "Schedules"
        ],
        "summary": "Get shifts for the specified schedule and date range.",
        "operationId": "Schedules_getShiftsByIdAndDateRange",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "description": "from date, default is start of last month",
            "in": "query",
            "name": "from",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "description": "until date, default is from date plus 3 months",
            "in": "query",
            "name": "until",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "if true, shifts won't include overrides",
            "in": "query",
            "name": "exclude-overrides",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "the shift objects",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchedulesGetShiftsByIdAndDateRangeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/schedules/{id}/overrides": {
      "get": {
        "tags": [
          "Schedules"
        ],
        "summary": "Get overrides for the specified schedule.",
        "operationId": "Schedules_getOverridesById",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "the shift objects",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchedulesGetOverridesByIdResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Schedules"
        ],
        "summary": "Add an override shift to a schedule.",
        "operationId": "Schedules_addOverrideShift",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/schedules/{id}/user-on-call": {
      "get": {
        "tags": [
          "Schedules"
        ],
        "summary": "Get the user (wrapped in a shift object) on-call for the specified schedule.",
        "operationId": "Schedules_getUserOnCall",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "the current shift",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Shift"
                }
              }
            }
          },
          "204": {
            "description": "if no user is on-call"
          }
        }
      }
    },
    "/on-calls": {
      "get": {
        "tags": [
          "On-Calls"
        ],
        "summary": "List on-calls with flexible filters",
        "operationId": "OnCalls_listWithFilters",
        "parameters": [
          {
            "description": "escalation policy ids to filter on call duties for",
            "name": "policies",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "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",
            "name": "policy-levels",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "on call schedule ids to filter on call duties for",
            "name": "schedules",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "user ids to filter on call duties for",
            "name": "users",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "include full entities for: policy, escalationPolicy or user",
            "name": "expand",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "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",
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "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",
            "name": "until",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Time zone in which the results will be rendered, defaults to UTC",
            "name": "timezone",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "offset for the search results, defaults to 0",
            "name": "start-index",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "limit for the search results, defaults to 50, may not exceed 250",
            "name": "max-results",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "returns a list of on-call objects for the searched window",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OnCallsListWithFiltersResponse"
                }
              }
            }
          }
        }
      }
    },
    "/alert-sources": {
      "get": {
        "tags": [
          "Alert Sources"
        ],
        "summary": "List alert sources.",
        "operationId": "AlertSources_listSources",
        "parameters": [
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "description": "the maximum number of results when paging through a list of alert sources.",
            "in": "query",
            "name": "max-results",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "the alert source object",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertSourcesListSourcesResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Alert Sources"
        ],
        "summary": "Create a new alert source.",
        "operationId": "AlertSources_createNewSource",
        "requestBody": {
          "$ref": "#/components/requestBodies/AlertSourceRel"
        },
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/alert-sources/{id}": {
      "get": {
        "tags": [
          "Alert Sources"
        ],
        "summary": "Get the alert source with specified id or alternatively api key.",
        "operationId": "AlertSources_getByIdOrApiKey",
        "parameters": [
          {
            "$ref": "#/components/parameters/source-id-or-key"
          },
          {
            "description": "Describes optional properties that should be included in the response. You may declare multiple. (detailsTemplate, summaryTemplate, routingTemplate, linkTemplates, priorityTemplate, textTemplate)",
            "name": "include",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "detailsTemplate",
                  "summaryTemplate",
                  "routingTemplate",
                  "linkTemplates",
                  "priorityTemplate",
                  "textTemplate"
                ]
              }
            }
          }
        ],
        "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.",
        "operationId": "AlertSources_updateExistingSource",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/AlertSourceRel"
        },
        "responses": {
          "200": {
            "description": "the updated alert source object",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertSource"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Alert Sources"
        ],
        "summary": "Delete the specified alert source.",
        "operationId": "AlertSources_deleteSpecifiedSource",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "description": "if deletion was successful"
          }
        }
      }
    },
    "/support-hours": {
      "get": {
        "tags": [
          "Support Hours"
        ],
        "summary": "List support hours.",
        "operationId": "SupportHours_list",
        "parameters": [
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "description": "the maximum number of results when paging through a list of support hours.",
            "in": "query",
            "name": "max-results",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "list of support hours",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupportHoursListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Support Hours"
        ],
        "summary": "Create a new support hour.",
        "operationId": "SupportHours_createNewSupportHour",
        "requestBody": {
          "$ref": "#/components/requestBodies/SupportHour"
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupportHour"
                }
              }
            }
          }
        }
      }
    },
    "/support-hours/{id}": {
      "get": {
        "tags": [
          "Support Hours"
        ],
        "summary": "Get the support hour with specified id.",
        "operationId": "SupportHours_getById",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "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.",
        "operationId": "SupportHours_updateExistingHour",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/SupportHour"
        },
        "responses": {
          "200": {
            "description": "the updated support hour object",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupportHour"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Support Hours"
        ],
        "summary": "Delete the specified support hour.",
        "operationId": "SupportHours_deleteSpecifiedSupportHour",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "description": "if deletion was successful"
          }
        }
      }
    },
    "/maintenance-windows": {
      "get": {
        "tags": [
          "Maintenance Windows"
        ],
        "summary": "List maintenance windows.",
        "operationId": "MaintenanceWindows_list",
        "parameters": [
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "$ref": "#/components/parameters/max-results"
          }
        ],
        "responses": {
          "200": {
            "description": "the maintenance window object",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MaintenanceWindowsListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Maintenance Windows"
        ],
        "summary": "Create a new maintenance window.",
        "operationId": "MaintenanceWindows_createNewWindow",
        "requestBody": {
          "$ref": "#/components/requestBodies/MaintenanceWindow"
        },
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/maintenance-windows/{id}": {
      "get": {
        "tags": [
          "Maintenance Windows"
        ],
        "summary": "Get the maintenance window with specified id.",
        "operationId": "MaintenanceWindows_getById",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "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.",
        "operationId": "MaintenanceWindows_updateExistingWindow",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/MaintenanceWindow"
        },
        "responses": {
          "200": {
            "description": "the updated maintenance window object",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MaintenanceWindow"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Maintenance Windows"
        ],
        "summary": "Delete the specified maintenance window.",
        "operationId": "MaintenanceWindows_removeById",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "description": "if deletion was successful"
          }
        }
      }
    },
    "/escalation-policies": {
      "get": {
        "tags": [
          "Escalation Policies"
        ],
        "summary": "List escalation policies.",
        "operationId": "EscalationPolicies_listPolicies",
        "parameters": [
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "description": "the maximum number of results when paging through a list of escalation policies.",
            "in": "query",
            "name": "max-results",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EscalationPoliciesListPoliciesResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Escalation Policies"
        ],
        "summary": "Create a new escalation policy.",
        "operationId": "EscalationPolicies_createNewPolicy",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/escalation-policies/{id}": {
      "get": {
        "tags": [
          "Escalation Policies"
        ],
        "summary": "Get escalation policy with the specified id.",
        "operationId": "EscalationPolicies_getById",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EscalationPolicy"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Escalation Policies"
        ],
        "summary": "Update an existing escalation policy.",
        "operationId": "EscalationPolicies_updateExistingPolicy",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "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"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Escalation Policies"
        ],
        "summary": "Delete the specified escalation policy.",
        "operationId": "EscalationPolicies_deleteSpecificPolicy",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "description": "if deletion was successful"
          }
        }
      }
    },
    "/series/{key}": {
      "post": {
        "tags": [
          "Series"
        ],
        "summary": "Ingest a series for a metric",
        "operationId": "Series_ingestMetricSeries",
        "security": [],
        "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": [
          {
            "$ref": "#/components/parameters/key"
          }
        ],
        "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"
          }
        }
      }
    },
    "/events": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Post an event to ilert.",
        "operationId": "Events_postEventToIlert",
        "security": [],
        "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 api key belongs, and takes appropriate action.\n\nAn event object contains the following attributes:\n\nAttribute     | Desription \n------------- | ------------- \napiKey  | **Required**. The API 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.\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 API 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  \"apiKey\": \"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  \"apiKey\": \"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 \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  \"apiKey\": \"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  \"apiKey\": \"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"
          }
        }
      }
    },
    "/heartbeats/{key}": {
      "head": {
        "tags": [
          "Heartbeats"
        ],
        "summary": "Ping heartbeat alert source.",
        "operationId": "Heartbeats_pingAlertSource",
        "security": [],
        "parameters": [
          {
            "$ref": "#/components/parameters/key"
          }
        ],
        "responses": {
          "202": {
            "description": "Arbitrary accept response"
          }
        }
      },
      "get": {
        "tags": [
          "Heartbeats"
        ],
        "summary": "Ping heartbeat alert source.",
        "operationId": "Heartbeats_pingAlertSource",
        "security": [],
        "parameters": [
          {
            "$ref": "#/components/parameters/key"
          }
        ],
        "responses": {
          "202": {
            "description": "Arbitrary accept response"
          }
        }
      },
      "post": {
        "tags": [
          "Heartbeats"
        ],
        "summary": "Ping heartbeat alert source.",
        "operationId": "Heartbeats_pingAlertSource",
        "security": [],
        "parameters": [
          {
            "$ref": "#/components/parameters/key"
          }
        ],
        "responses": {
          "202": {
            "description": "Arbitrary accept response"
          }
        }
      }
    },
    "/alert-actions": {
      "get": {
        "tags": [
          "Alert Actions"
        ],
        "summary": "Get alert actions.",
        "operationId": "AlertActions_getList",
        "parameters": [
          {
            "description": "alert source id",
            "name": "source",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "connector id",
            "name": "connector",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "description": "the maximum number of results when paging through a list of alert actions.",
            "in": "query",
            "name": "max-results",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "maximum": 100,
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The filtered alert actions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertActionsGetListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Alert Actions"
        ],
        "summary": "Create a new alert action.",
        "operationId": "AlertActions_createNewAction",
        "requestBody": {
          "$ref": "#/components/requestBodies/AlertAction"
        },
        "responses": {
          "200": {
            "description": "The newly created alert action",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertAction"
                }
              }
            }
          }
        }
      }
    },
    "/alert-actions/{id}": {
      "get": {
        "tags": [
          "Alert Actions"
        ],
        "summary": "Get a specific alert action.",
        "operationId": "AlertActions_getSpecificAction",
        "parameters": [
          {
            "$ref": "#/components/parameters/string-id"
          }
        ],
        "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)",
        "operationId": "AlertActions_updateSpecificAlertAction",
        "parameters": [
          {
            "$ref": "#/components/parameters/string-id"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/AlertAction"
        },
        "responses": {
          "200": {
            "description": "The updated alert action",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertAction"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Alert Actions"
        ],
        "summary": "Remove a specific alert action.",
        "operationId": "AlertActions_removeSpecificAction",
        "parameters": [
          {
            "$ref": "#/components/parameters/string-id"
          }
        ],
        "responses": {
          "204": {
            "description": "Empty body delete response"
          }
        }
      }
    },
    "/connectors": {
      "get": {
        "tags": [
          "Connectors"
        ],
        "summary": "Get connectors.",
        "operationId": "Connectors_getAvailableConnectors",
        "parameters": [
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "$ref": "#/components/parameters/max-results"
          }
        ],
        "responses": {
          "200": {
            "description": "The connectors",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorsGetAvailableConnectorsResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Connectors"
        ],
        "summary": "Create a new connector.",
        "operationId": "Connectors_createNewConnector",
        "requestBody": {
          "$ref": "#/components/requestBodies/Connector"
        },
        "responses": {
          "200": {
            "description": "The newly created connector",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connector"
                }
              }
            }
          }
        }
      }
    },
    "/connectors/{id}": {
      "get": {
        "tags": [
          "Connectors"
        ],
        "summary": "Get a specific connector.",
        "operationId": "Connectors_getSpecificConnector",
        "parameters": [
          {
            "$ref": "#/components/parameters/string-id"
          }
        ],
        "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)",
        "operationId": "Connectors_updateSpecificConnector",
        "parameters": [
          {
            "$ref": "#/components/parameters/string-id"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Connector"
        },
        "responses": {
          "200": {
            "description": "The updated connector",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connector"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Connectors"
        ],
        "summary": "Remove a specific connector.",
        "operationId": "Connectors_removeSpecificConnector",
        "parameters": [
          {
            "$ref": "#/components/parameters/string-id"
          }
        ],
        "responses": {
          "204": {
            "description": "Empty body delete response"
          }
        }
      }
    },
    "/teams": {
      "get": {
        "tags": [
          "Teams"
        ],
        "summary": "Get teams.",
        "operationId": "Teams_getAll",
        "parameters": [
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "$ref": "#/components/parameters/max-results"
          },
          {
            "description": "optional, filter teams for specific members (currently only a single occurrence of this param is allowed)",
            "name": "members",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The teams",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamsGetAllResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Teams"
        ],
        "summary": "Create a new team.",
        "operationId": "Teams_createNewTeam",
        "requestBody": {
          "$ref": "#/components/requestBodies/Team"
        },
        "responses": {
          "200": {
            "description": "The newly created team",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Team"
                }
              }
            }
          }
        }
      }
    },
    "/teams/{id}": {
      "get": {
        "tags": [
          "Teams"
        ],
        "summary": "Get a specific team.",
        "operationId": "Teams_getDetails",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "The requested team",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Team"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Teams"
        ],
        "summary": "Update the specific team",
        "operationId": "Teams_updateSpecificTeam",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Team"
        },
        "responses": {
          "200": {
            "description": "The updated team",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Team"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Teams"
        ],
        "summary": "Remove a specific team.",
        "operationId": "Teams_removeSpecificTeam",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "description": "Empty body delete response"
          }
        }
      }
    },
    "/teams/{id}/members": {
      "post": {
        "tags": [
          "Teams"
        ],
        "summary": "Add a new team member to specific team",
        "operationId": "Teams_addNewMember",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/teams/{id}/members/{id}": {
      "delete": {
        "tags": [
          "Teams"
        ],
        "summary": "Remove a specific member of a specific team.",
        "operationId": "Teams_removeSpecificMember",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "description": "Empty body delete response"
          }
        }
      }
    },
    "/reports/alerts": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "List alert metrics for the requested resources",
        "operationId": "Reports_listAlertMetrics",
        "parameters": [
          {
            "description": "alert source ids to filter metrics for",
            "name": "sources",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "escalation policy ids to filter metrics for",
            "name": "policies",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "phone numbers of call routing numbers to filter metrics for",
            "name": "numbers",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "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",
            "name": "from",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "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",
            "name": "until",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Time zone in which the results will be rendered, defaults to tenant's configured default timezone",
            "name": "timezone",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Describes the metric that should be fetched choose one of: COUNT, MTTA or MTTR - defaults to COUNT",
            "name": "metric",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Defines the grouping of metrics, choose one of: DAY, WEEK or MONTH - defaults to WEEK",
            "name": "group-by",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sets the priority filter that should be applied, choose one of: LOW, HIGH or ALL - defaults to ALL",
            "name": "priority",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "an array of alert report metrics, each metric is another array containing data in the following order: \n\n[long:alertSourceId, long:escalationPolicyId, string:callRoutingNumberPhoneNumber, string:ISO-8601, long:value]\n\ne.g. [ [202541, 13541, \"\", \"2021-08\", 15] ]\n\nPlease note: the ISO-8601 (4th column) in this case depends on the chosen 'group-by' parameter. DAY=2021-08-01, WEEK=2021-W12, MONTH=2021-08",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportsListAlertMetricsResponse"
                }
              },
              "metric sample": {
                "examples": {
                  "response": {
                    "value": {
                      "summary": "metric sample",
                      "value": [
                        [
                          202541,
                          13541,
                          "",
                          "2021-08",
                          15
                        ]
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/reports/alerts/summary": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Summarize a list of alert metrics",
        "operationId": "Reports_summarizeAlertMetrics",
        "parameters": [
          {
            "description": "alert source ids to filter metrics for",
            "name": "sources",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "escalation policy ids to filter metrics for",
            "name": "policies",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "phone numbers of call routing numbers to filter metrics for",
            "name": "numbers",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "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",
            "name": "from",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "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",
            "name": "until",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Time zone in which the results will be rendered, defaults to tenant's configured default timezone",
            "name": "timezone",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Describes the metric that should be fetched choose one of: COUNT, MTTA or MTTR - defaults to COUNT",
            "name": "metric",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Defines the grouping of metrics, choose one of: DAY, WEEK or MONTH - defaults to WEEK",
            "name": "group-by",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sets the priority filter that should be applied, choose one of: LOW, HIGH or ALL - defaults to ALL",
            "name": "priority",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "an array containing summarized alert report metrics for the requested resource",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportsSummarizeAlertMetricsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/reports/api-keys/usage": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "List API key usage metrics for the requested resources",
        "operationId": "Reports_listApiKeyUsageMetrics",
        "description": "This endpoint requires 'ADMIN' permissions",
        "parameters": [
          {
            "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",
            "name": "scopes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "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)",
            "name": "from",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "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)",
            "name": "until",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Time zone in which the results will be rendered, defaults to tenant's configured default timezone",
            "name": "timezone",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "an array of usage metrics, each metric is another array containing data in the following order: \n\n[long:userId, string:scope, string:ISO-8601, long:value]\n\ne.g. [ [202541, \"source\", \"2023-04-21\", 15] ]\n\nPlease note: the ISO-8601 (3th column) in this case is always DAY (2021-08-01) usually 24 hours apart, but there is a slight chance that the same userId and scope have multiple entries for the same DAY",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportsListApiKeyUsageMetricsResponse"
                }
              },
              "metric sample": {
                "examples": {
                  "response": {
                    "value": {
                      "summary": "metric sample",
                      "value": [
                        [
                          202541,
                          "alert",
                          "2023-04",
                          15
                        ]
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/incident-templates": {
      "get": {
        "tags": [
          "Incident Templates"
        ],
        "summary": "Get incident templates.",
        "operationId": "IncidentTemplates_getList",
        "parameters": [
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "$ref": "#/components/parameters/max-results"
          }
        ],
        "responses": {
          "200": {
            "description": "The incident templates",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncidentTemplatesGetListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Incident Templates"
        ],
        "summary": "Create a new incident template.",
        "operationId": "IncidentTemplates_createNewTemplate",
        "requestBody": {
          "$ref": "#/components/requestBodies/IncidentTemplate"
        },
        "responses": {
          "200": {
            "description": "The newly created incident template",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncidentTemplate"
                }
              }
            }
          }
        }
      }
    },
    "/incident-templates/{id}": {
      "get": {
        "tags": [
          "Incident Templates"
        ],
        "summary": "Get a specific incident template.",
        "operationId": "IncidentTemplates_getSpecificTemplate",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "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",
        "operationId": "IncidentTemplates_updateSpecificTemplate",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/IncidentTemplate"
        },
        "responses": {
          "200": {
            "description": "The updated incident template",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncidentTemplate"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Incident Templates"
        ],
        "summary": "Remove a specific incident template.",
        "operationId": "IncidentTemplates_removeSpecificTemplate",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "description": "Empty body delete response"
          }
        }
      }
    },
    "/services": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "Get services.",
        "operationId": "Services_listAvailableServices",
        "parameters": [
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "description": "the maximum number of results when paging through a list of services. (Note: when using ?include maximum is reduced to 25)",
            "in": "query",
            "name": "max-results",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "maximum": 100,
              "default": 10
            }
          },
          {
            "description": "Describes optional properties that should be included in the response. You may declare multiple. (subscribed, uptime, incidents)",
            "name": "include",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "subscribed",
                  "uptime",
                  "incidents"
                ]
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The services",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServicesListAvailableServicesResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Services"
        ],
        "summary": "Create a new service.",
        "operationId": "Services_createService",
        "requestBody": {
          "$ref": "#/components/requestBodies/ServiceNoIncludes"
        },
        "responses": {
          "200": {
            "description": "The newly created service",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceNoIncludes"
                }
              }
            }
          }
        }
      }
    },
    "/services/{id}": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "Get a specific service.",
        "operationId": "Services_getSpecificService",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "description": "Describes optional properties that should be included in the response. You may declare multiple. (subscribed, uptime, incidents)",
            "name": "include",
            "in": "query",
            "required": false,
            "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",
        "operationId": "Services_updateSpecificService",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ServiceNoIncludes"
        },
        "responses": {
          "200": {
            "description": "The updated service",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceNoIncludes"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Services"
        ],
        "summary": "Remove a specific service.",
        "operationId": "Services_removeSpecificService",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "description": "Empty body delete response"
          }
        }
      }
    },
    "/automation-rules": {
      "get": {
        "tags": [
          "Automation Rules"
        ],
        "summary": "Get automation rules.",
        "operationId": "AutomationRules_getDeprecatedRules",
        "description": "This API has been deprecated, use /alert-actions of type 'automation_rule' instead.",
        "parameters": [
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "$ref": "#/components/parameters/max-results"
          },
          {
            "description": "The service id for which automation rules are filtered for, this param is required",
            "name": "service",
            "in": "query",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "The alert source id for which automation rules are filtered for, this param is an alternative to service",
            "name": "source",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "The status page id for which automation rules are filtered for, this param is an alternative to service",
            "name": "status-page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The automation rules",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutomationRulesGetDeprecatedRulesResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Automation Rules"
        ],
        "summary": "Create a new automation rule.",
        "operationId": "AutomationRules_createNewRule",
        "description": "This API has been deprecated, use /alert-actions of type 'automation_rule' instead.",
        "requestBody": {
          "$ref": "#/components/requestBodies/AutomationRule"
        },
        "responses": {
          "200": {
            "description": "The newly created automation rule",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutomationRule"
                }
              }
            }
          }
        }
      }
    },
    "/automation-rules/{id}": {
      "get": {
        "tags": [
          "Automation Rules"
        ],
        "summary": "Get a specific automation rule.",
        "operationId": "AutomationRules_getSpecificRule",
        "description": "This API has been deprecated, use /alert-actions of type 'automation_rule' instead.",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "The requested automation rule",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutomationRule"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Automation Rules"
        ],
        "summary": "Update the specific automation rule",
        "operationId": "AutomationRules_updateSpecificRule",
        "description": "This API has been deprecated, use /alert-actions of type 'automation_rule' instead.",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/AutomationRule"
        },
        "responses": {
          "200": {
            "description": "The updated automation rule",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutomationRule"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Automation Rules"
        ],
        "summary": "Remove a specific automation rule.",
        "operationId": "AutomationRules_removeSpecificRule",
        "description": "This API has been deprecated, use /alert-actions of type 'automation_rule' instead.",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "description": "Empty body delete response"
          }
        }
      }
    },
    "/incidents": {
      "get": {
        "tags": [
          "Incidents"
        ],
        "summary": "Get incidents.",
        "operationId": "Incidents_getIncidentList",
        "parameters": [
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "description": "the maximum number of results when paging through a list of incidents. (Note: when using ?include maximum is reduced to 25)",
            "in": "query",
            "name": "max-results",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "maximum": 100,
              "default": 10
            }
          },
          {
            "description": "Describes optional properties that should be included in the response. You may declare multiple. (subscribed)",
            "name": "include",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "subscribed"
                ]
              }
            }
          },
          {
            "description": "state of the alert",
            "in": "query",
            "name": "states",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "INVESTIGATING",
                  "IDENTIFIED",
                  "MONITORING",
                  "RESOLVED"
                ]
              }
            }
          },
          {
            "description": "service IDs of the incident's affected services",
            "in": "query",
            "name": "services",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64"
              }
            }
          },
          {
            "description": "from date, ISO-UTC e.g. 2021-05-25T21:24:56.771Z, based on reportTime",
            "in": "query",
            "name": "from",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "description": "until date, ISO-UTC e.g. 2021-05-26T21:24:56.771Z, based on reportTime",
            "in": "query",
            "name": "until",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The incidents",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncidentsGetIncidentListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Incidents"
        ],
        "summary": "Create a new incident.",
        "operationId": "Incidents_createNewIncident",
        "description": "Note: depending on affected services this will publish notifications to subscribers. Use /publish-info to forecast notifications.",
        "requestBody": {
          "$ref": "#/components/requestBodies/IncidentNoIncludes"
        },
        "responses": {
          "200": {
            "description": "The newly created incident",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncidentNoIncludes"
                }
              }
            }
          }
        }
      }
    },
    "/incidents/publish-info": {
      "post": {
        "tags": [
          "Incidents"
        ],
        "summary": "Forecast the affected subscribers and status pages",
        "operationId": "Incidents_forecastAffectedSubscribersAndStatusPages",
        "description": "Forecast the affected subscribers and status pages as well as notifications that would be send out due to created or update incident.",
        "requestBody": {
          "$ref": "#/components/requestBodies/IncidentNoIncludes"
        },
        "responses": {
          "200": {
            "description": "The forecast for the provided incident",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncidentsForecastAffectedSubscribersAndStatusPagesResponse"
                }
              }
            }
          }
        }
      }
    },
    "/incidents/{id}": {
      "get": {
        "tags": [
          "Incidents"
        ],
        "summary": "Get a specific incident.",
        "operationId": "Incidents_getSpecificIncident",
        "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": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "description": "Describes optional properties that should be included in the response. You may declare multiple. (subscribed, affectedTeams, history)",
            "name": "include",
            "in": "query",
            "required": false,
            "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.",
        "operationId": "Incidents_updateSpecificIncident",
        "description": "Note: the update will be automatically appended to the incident's update history and publish notifications to subscribers.",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "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.",
            "name": "If-Match",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/IncidentNoIncludes"
        },
        "responses": {
          "200": {
            "description": "The updated incident",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncidentNoIncludes"
                }
              }
            }
          }
        }
      }
    },
    "/incidents/{id}/private-subscribers": {
      "get": {
        "tags": [
          "Incidents"
        ],
        "summary": "Get the subscribers (users and teams) of an incident",
        "operationId": "Incidents_getPrivateSubscribers",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "The subscribers of the incident",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncidentsGetPrivateSubscribersResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Incidents"
        ],
        "summary": "Add subscribers (users and teams) to an incident",
        "operationId": "Incidents_addSubscribers",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "description": "subscribers that should be added",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IncidentsAddSubscribersRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": ""
          }
        }
      }
    },
    "/services/{id}/private-subscribers": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "Get the subscribers (users and teams) of a service",
        "operationId": "Services_getSubscribers",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "The subscribers of the service",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServicesGetSubscribersResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Services"
        ],
        "summary": "Set subscribers (users and teams) of a service",
        "operationId": "Services_setPrivateSubscribers",
        "description": "Note: this is an in place update",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/TeamUserOptionArray"
        },
        "responses": {
          "204": {
            "description": ""
          }
        }
      }
    },
    "/status-pages": {
      "get": {
        "tags": [
          "Status Pages"
        ],
        "summary": "Get status pages.",
        "operationId": "StatusPages_getStatusPages",
        "parameters": [
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "description": "the maximum number of results when paging through a list of status pages.",
            "in": "query",
            "name": "max-results",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "maximum": 50,
              "default": 25
            }
          },
          {
            "description": "Describes optional properties that should be included in the response. You may declare multiple. (subscribed)",
            "name": "include",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "subscribed"
                ]
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The status pages",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusPagesGetStatusPagesResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Status Pages"
        ],
        "summary": "Create a new status page.",
        "operationId": "StatusPages_createNewStatusPage",
        "requestBody": {
          "$ref": "#/components/requestBodies/StatusPageNoIncludes"
        },
        "responses": {
          "200": {
            "description": "The newly created status page",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusPageNoIncludes"
                }
              }
            }
          }
        }
      }
    },
    "/status-pages/{id}": {
      "get": {
        "tags": [
          "Status Pages"
        ],
        "summary": "Get a specific status page.",
        "operationId": "StatusPages_getPageDetails",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "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.",
            "name": "include",
            "in": "query",
            "required": false,
            "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",
        "operationId": "StatusPages_updateSpecificPage",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/StatusPageNoIncludes"
        },
        "responses": {
          "200": {
            "description": "The updated status page",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusPageNoIncludes"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Status Pages"
        ],
        "summary": "Remove a specific status page.",
        "operationId": "StatusPages_removeSpecificPage",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "description": "Empty body delete response"
          }
        }
      }
    },
    "/status-pages/{id}/groups": {
      "get": {
        "tags": [
          "Status Pages"
        ],
        "summary": "Get the groups of a status page",
        "operationId": "StatusPages_getGroups",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "$ref": "#/components/parameters/max-results"
          }
        ],
        "responses": {
          "200": {
            "description": "The groups of the status page",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusPagesGetGroupsResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Status Pages"
        ],
        "summary": "Add a group to a status page",
        "operationId": "StatusPages_addGroupToPage",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/status-pages/{id}/groups/{group-id}": {
      "get": {
        "tags": [
          "Status Pages"
        ],
        "summary": "Get a specific group of a status page",
        "operationId": "StatusPages_getSpecificGroup",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "description": "entity ID",
            "name": "group-id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The group of the status page",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusPageGroup"
                }
              }
            }
          },
          "404": {
            "description": ""
          }
        }
      },
      "put": {
        "tags": [
          "Status Pages"
        ],
        "summary": "Update a group of a status page",
        "operationId": "StatusPages_updateGroup",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "description": "entity ID",
            "name": "group-id",
            "in": "path",
            "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"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Status Pages"
        ],
        "summary": "Remove group from a status page",
        "operationId": "StatusPages_removeGroup",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "description": "entity ID",
            "name": "group-id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        }
      }
    },
    "/status-pages/{id}/private-subscribers": {
      "get": {
        "tags": [
          "Status Pages"
        ],
        "summary": "Get the subscribers (users and teams) of a status page",
        "operationId": "StatusPages_getPrivateSubscribers",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "The subscribers of the status page",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusPagesGetPrivateSubscribersResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Status Pages"
        ],
        "summary": "Set subscribers (users and teams) of a status page",
        "operationId": "StatusPages_setPrivateSubscribers",
        "description": "Note: this is an in place update",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/TeamUserOptionArray"
        },
        "responses": {
          "204": {
            "description": ""
          }
        }
      },
      "post": {
        "tags": [
          "Status Pages"
        ],
        "summary": "Add subscriber (user and team) to a status page",
        "operationId": "StatusPages_addSubscriber",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "description": "subscriber that should be added",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeamUserOption"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": ""
          }
        }
      },
      "delete": {
        "tags": [
          "Status Pages"
        ],
        "summary": "Remove subscriber (user and team) from a status page",
        "operationId": "StatusPages_removeSubscriber",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "description": "subscriber that should be removed",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeamUserOption"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": ""
          }
        }
      }
    },
    "/service-outages": {
      "get": {
        "tags": [
          "Service Outages"
        ],
        "summary": "Get the outages (including applied overrides) of a specific service",
        "operationId": "ServiceOutages_getServiceOutages",
        "parameters": [
          {
            "description": "the id of the service for which the outages should be fetched",
            "in": "query",
            "name": "service",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "from date, ISO-UTC e.g. 2021-05-25T21:24:56.771Z",
            "in": "query",
            "name": "from",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "description": "until date, ISO-UTC e.g. 2021-05-26T21:24:56.771Z",
            "in": "query",
            "name": "until",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "description": "if the outages should not take overrides into account, default is false",
            "in": "query",
            "name": "ignore-overrides",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The outages of the service",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceOutagesGetServiceOutagesResponse"
                }
              }
            }
          }
        }
      }
    },
    "/service-outages/overrides": {
      "get": {
        "tags": [
          "Service Outages"
        ],
        "summary": "Get the overrides of a specific service",
        "operationId": "ServiceOutages_getOverrides",
        "parameters": [
          {
            "description": "the id of the service for which the overrides should be fetched",
            "in": "query",
            "name": "service",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "from date, ISO-UTC e.g. 2021-05-25T21:24:56.771Z",
            "in": "query",
            "name": "from",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "description": "until date, ISO-UTC e.g. 2021-05-26T21:24:56.771Z",
            "in": "query",
            "name": "until",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The overrides of the service",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceOutagesGetOverridesResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Service Outages"
        ],
        "summary": "Override a part of a service's outage history",
        "operationId": "ServiceOutages_overridePartHistory",
        "requestBody": {
          "$ref": "#/components/requestBodies/ServiceOutageOverride"
        },
        "responses": {
          "201": {
            "description": "The added override",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceOutageOverride"
                }
              }
            }
          }
        }
      }
    },
    "/service-outages/overrides/{id}": {
      "get": {
        "tags": [
          "Service Outages"
        ],
        "summary": "Get the specific service outage override",
        "operationId": "ServiceOutages_getSpecificOverride",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "The override",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceOutageOverride"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Service Outages"
        ],
        "summary": "Update an existing service outage override",
        "operationId": "ServiceOutages_updateOverride",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ServiceOutageOverride"
        },
        "responses": {
          "200": {
            "description": "The updated override",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceOutageOverride"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Service Outages"
        ],
        "summary": "Remove a service outage override",
        "operationId": "ServiceOutages_removeOverride",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        }
      }
    },
    "/metric-data-sources": {
      "get": {
        "tags": [
          "Metric Data Sources"
        ],
        "summary": "Get Metric Data Sources",
        "operationId": "MetricDataSources_list",
        "parameters": [
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "description": "the maximum number of results when paging through a list of metric data sources",
            "in": "query",
            "name": "max-results",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "maximum": 100,
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The Metric Data Sources",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetricDataSourcesListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Metric Data Sources"
        ],
        "summary": "Create a new Metric Data Source.",
        "operationId": "MetricDataSources_createNewMetricDataSource",
        "requestBody": {
          "$ref": "#/components/requestBodies/MetricDataSourcePost"
        },
        "responses": {
          "200": {
            "description": "The newly created Metric Data Source",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetricDataSource"
                }
              }
            }
          }
        }
      }
    },
    "/metric-data-sources/{id}": {
      "get": {
        "tags": [
          "Metric Data Sources"
        ],
        "summary": "Get a specific Metric Data Source",
        "operationId": "MetricDataSources_getSpecificDataSource",
        "parameters": [
          {
            "description": "entity ID",
            "name": "id",
            "in": "path",
            "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",
        "operationId": "MetricDataSources_updateSpecificDataSource",
        "parameters": [
          {
            "description": "entity ID",
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/MetricDataSourcePost"
        },
        "responses": {
          "200": {
            "description": "The updated Metric Data Source",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetricDataSource"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Metric Data Sources"
        ],
        "summary": "Delete a specific Metric Data Source",
        "operationId": "MetricDataSources_deleteSpecificDataSource",
        "parameters": [
          {
            "description": "entity ID",
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Empty body delete response"
          }
        }
      }
    },
    "/metrics": {
      "get": {
        "tags": [
          "Metrics"
        ],
        "summary": "Get metrics.",
        "operationId": "Metrics_getMetrics",
        "parameters": [
          {
            "$ref": "#/components/parameters/start-index"
          },
          {
            "description": "the maximum number of results when paging through a list of metrics. (Note: when using ?include maximum is reduced to 25)",
            "in": "query",
            "name": "max-results",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "maximum": 100,
              "default": 10
            }
          },
          {
            "description": "Describes optional properties that should be included in the response. You may declare multiple. (dataSource, integrationKey)",
            "name": "include",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "dataSource",
                  "integrationKey"
                ]
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The metrics",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetricsGetMetricsResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Metrics"
        ],
        "summary": "Create a new metric.",
        "operationId": "Metrics_createNewMetric",
        "requestBody": {
          "$ref": "#/components/requestBodies/MetricPost"
        },
        "responses": {
          "200": {
            "description": "The newly created metric",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Metric"
                }
              }
            }
          }
        }
      }
    },
    "/metric/{id}": {
      "get": {
        "tags": [
          "Metrics"
        ],
        "summary": "Get a specific Metric",
        "operationId": "Metrics_getSpecificMetric",
        "parameters": [
          {
            "description": "entity ID",
            "name": "id",
            "in": "path",
            "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",
        "operationId": "Metrics_updateSpecificMetric",
        "parameters": [
          {
            "description": "entity ID",
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/MetricPost"
        },
        "responses": {
          "200": {
            "description": "The updated metric",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Metric"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Metrics"
        ],
        "summary": "Delete the specific Metric",
        "operationId": "Metrics_deleteSpecificMetric",
        "parameters": [
          {
            "description": "entity ID",
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Empty body delete response"
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "id": {
        "description": "entity ID",
        "name": "id",
        "in": "path",
        "required": true,
        "schema": {
          "type": "number"
        }
      },
      "string-id": {
        "description": "entity ID",
        "name": "id",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "user-id-in-path": {
        "description": "numeric user id",
        "name": "user-id",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "include": {
        "description": "Describes optional properties that should be included in the response.",
        "name": "include",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "user-id-in-query": {
        "description": "numeric user id",
        "name": "user",
        "in": "query",
        "schema": {
          "type": "string"
        }
      },
      "source-id-or-key": {
        "description": "numeric source id or api key",
        "name": "source-id",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "requester-id": {
        "description": "id of the user who requested this operation",
        "in": "query",
        "name": "requester-id",
        "schema": {
          "type": "string"
        }
      },
      "start-index": {
        "description": "an integer specifying the starting point (beginning with 0) when paging through a list of entities",
        "in": "query",
        "name": "start-index",
        "required": false,
        "schema": {
          "type": "integer",
          "format": "int32",
          "default": 0
        }
      },
      "max-results": {
        "description": "the maximum number of results when paging through a list of entities.",
        "in": "query",
        "name": "max-results",
        "required": false,
        "schema": {
          "type": "integer",
          "format": "int32",
          "maximum": 100,
          "default": 50
        }
      },
      "key": {
        "description": "api key of resource",
        "name": "key",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      }
    },
    "requestBodies": {
      "Connector": {
        "description": "the connector",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Connector"
            }
          }
        },
        "required": true
      },
      "AlertSourceRel": {
        "description": "the alert source",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AlertSourceRel"
            }
          }
        },
        "required": true
      },
      "ServiceOutageOverride": {
        "description": "override that should be made",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ServiceOutageOverride"
            }
          }
        },
        "required": true
      },
      "TeamUserOptionArray": {
        "description": "subscribers that should be adjusted",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ServicesSetPrivateSubscribersRequest"
            }
          }
        },
        "required": true
      },
      "MaintenanceWindow": {
        "description": "the maintenance window",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MaintenanceWindow"
            }
          }
        },
        "required": true
      },
      "MetricPost": {
        "description": "The metric",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MetricPost"
            }
          }
        },
        "required": true
      },
      "Schedule": {
        "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
      },
      "SupportHour": {
        "description": "the support hour",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SupportHour"
            }
          }
        },
        "required": true
      },
      "AlertAction": {
        "description": "the alert action",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AlertAction"
            }
          }
        },
        "required": true
      },
      "Team": {
        "description": "the team",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Team"
            }
          }
        },
        "required": true
      },
      "IncidentTemplate": {
        "description": "the incident template",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/IncidentTemplate"
            }
          }
        },
        "required": true
      },
      "ServiceNoIncludes": {
        "description": "the service",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ServiceNoIncludes"
            }
          }
        },
        "required": true
      },
      "AutomationRule": {
        "description": "the automation rule",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AutomationRule"
            }
          }
        },
        "required": true
      },
      "IncidentNoIncludes": {
        "description": "the incident",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/IncidentNoIncludes"
            }
          }
        },
        "required": true
      },
      "StatusPageNoIncludes": {
        "description": "the status page",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/StatusPageNoIncludes"
            }
          }
        },
        "required": true
      },
      "MetricDataSourcePost": {
        "description": "The metric data source",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MetricDataSourcePost"
            }
          }
        },
        "required": true
      }
    },
    "securitySchemes": {
      "apiKey": {
        "description": "The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.",
        "type": "apiKey",
        "in": "header",
        "name": "Authorization"
      }
    },
    "schemas": {
      "ContactStatus": {
        "type": "string",
        "enum": [
          "OK",
          "LOCKED",
          "BLACKLISTED"
        ]
      },
      "ContactPhoneNumber": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "regionCode": {
            "type": "string"
          },
          "target": {
            "type": "string"
          },
          "primary": {
            "description": "May only be enabled for a single phone number contact at a time",
            "type": "boolean"
          },
          "status": {
            "$ref": "#/components/schemas/ContactStatus"
          }
        }
      },
      "ContactPhoneNumberPost": {
        "type": "object",
        "properties": {
          "regionCode": {
            "type": "string"
          },
          "target": {
            "type": "string"
          },
          "primary": {
            "description": "May only be enabled for a single phone number contact at a time",
            "type": "boolean"
          }
        }
      },
      "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": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          }
        }
      },
      "User": {
        "type": "object",
        "required": [
          "firstName",
          "lastName",
          "email"
        ],
        "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"
            ]
          },
          "role": {
            "$ref": "#/components/schemas/Role"
          },
          "shiftColor": {
            "description": "Optional hex-color code for the user's shifts in schedules calendars",
            "type": "string"
          },
          "mutedUntil": {
            "description": "Date in ISO-8601",
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "description": "Date in ISO-8601",
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "description": "Date in ISO-8601",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "UserPost": {
        "type": "object",
        "required": [
          "firstName",
          "lastName",
          "email"
        ],
        "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"
            ]
          },
          "role": {
            "$ref": "#/components/schemas/Role"
          },
          "shiftColor": {
            "description": "Optional hex-color code for the user's shifts in schedules calendars",
            "type": "string"
          }
        }
      },
      "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",
        "minimum": "0",
        "maximum": "120"
      },
      "NotificationPreferencesAlert": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "method": {
            "$ref": "#/components/schemas/NotificationPreferenceAlertMethod"
          },
          "contact": {
            "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": {
            "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": {
            "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": {
            "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": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ContactPhoneNumber"
              },
              {
                "$ref": "#/components/schemas/ContactEmail"
              }
            ]
          },
          "method": {
            "$ref": "#/components/schemas/NotificationPreferenceUpdateMethod"
          },
          "type": {
            "$ref": "#/components/schemas/NotificationPreferencesUpdateType"
          }
        }
      },
      "NotificationPreferencesUpdatePost": {
        "type": "object",
        "properties": {
          "contact": {
            "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": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ContactPhoneNumber"
              },
              {
                "$ref": "#/components/schemas/ContactEmail"
              }
            ]
          },
          "method": {
            "$ref": "#/components/schemas/NotificationPreferenceSubscriptionMethod"
          }
        }
      },
      "NotificationPreferencesSubscriptionPost": {
        "type": "object",
        "properties": {
          "contact": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ContactPhoneNumber"
              },
              {
                "$ref": "#/components/schemas/ContactEmail"
              }
            ]
          },
          "method": {
            "$ref": "#/components/schemas/NotificationPreferenceSubscriptionMethod"
          }
        }
      },
      "EscalationRule": {
        "type": "object",
        "required": [
          "escalationTimeout"
        ],
        "properties": {
          "escalationTimeout": {
            "type": "integer"
          },
          "user": {
            "description": "This field (type: User) is deprecated, please use 'users' instead",
            "type": "object",
            "properties": {
              "id": {
                "type": "number"
              }
            }
          },
          "schedule": {
            "description": "This field (type: Schedule) is deprecated, please use 'schedules' instead",
            "type": "object",
            "properties": {
              "id": {
                "type": "number"
              }
            }
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserRel"
            }
          },
          "schedules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheduleRel"
            }
          }
        }
      },
      "EscalationPolicy": {
        "type": "object",
        "required": [
          "name",
          "escalationRules"
        ],
        "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": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 9,
            "default": 1
          },
          "delayMin": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 15,
            "default": 0
          },
          "routingKey": {
            "description": "optional",
            "type": "string"
          }
        }
      },
      "AlertPriority": {
        "type": "string",
        "enum": [
          "HIGH",
          "LOW"
        ]
      },
      "AlertPriorityRule": {
        "type": "string",
        "enum": [
          "HIGH",
          "LOW",
          "HIGH_DURING_SUPPORT_HOURS",
          "LOW_DURING_SUPPORT_HOURS"
        ]
      },
      "SupportHour": {
        "type": "object",
        "required": [
          "name",
          "timezone",
          "supportDays"
        ],
        "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"
              }
            }
          }
        }
      },
      "SupportDay": {
        "type": "object",
        "required": [
          "start",
          "end"
        ],
        "properties": {
          "start": {
            "type": "string",
            "format": "time"
          },
          "end": {
            "type": "string",
            "format": "time"
          }
        }
      },
      "IntegrationType": {
        "type": "string",
        "enum": [
          "NAGIOS",
          "ICINGA",
          "EMAIL",
          "SMS",
          "API",
          "CRN",
          "HEARTBEAT",
          "PRTG",
          "PINGDOM",
          "CLOUDWATCH",
          "AWSPHD",
          "STACKDRIVER",
          "INSTANA",
          "ZABBIX",
          "SOLARWINDS",
          "PROMETHEUS",
          "NEWRELIC",
          "GRAFANA",
          "GITHUB",
          "DATADOG",
          "UPTIMEROBOT",
          "APPDYNAMICS",
          "DYNATRACE",
          "TOPDESK",
          "STATUSCAKE",
          "MONITOR",
          "TOOL",
          "CHECKMK",
          "AUTOTASK",
          "AWSBUDGET",
          "SEARCHGUARD",
          "SERVERDENSITY",
          "ZAPIER",
          "KENTIXAM",
          "CONSUL",
          "ZAMMAD",
          "SIGNALFX",
          "SPLUNK",
          "KUBERNETES",
          "SEMATEXT",
          "SENTRY",
          "SUMOLOGIC",
          "RAYGUN",
          "MXTOOLBOX",
          "ESWATCHER",
          "AMAZONSNS",
          "KAPACITOR",
          "CORTEXXSOAR",
          "SENSU",
          "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"
        ]
      },
      "AlertActionType": {
        "type": "string",
        "enum": [
          "datadog",
          "autotask",
          "jira",
          "microsoft_teams",
          "servicenow",
          "slack",
          "webhook",
          "zendesk",
          "discord",
          "github",
          "topdesk",
          "aws_lambda",
          "azure_faas",
          "google_faas",
          "email",
          "sysdig",
          "zapier",
          "zammad",
          "mattermost",
          "zoom_chat",
          "zoom_meeting",
          "status_page_io",
          "webex",
          "dingtalk",
          "dingtalk_action",
          "aws_event_bridge",
          "auvik",
          "dynamic",
          "zabbix",
          "automation_rule",
          "telegram"
        ]
      },
      "ConnectorType": {
        "type": "string",
        "enum": [
          "datadog",
          "jira",
          "microsoft_teams",
          "servicenow",
          "slack",
          "zendesk",
          "discord",
          "github",
          "topdesk",
          "aws_lambda",
          "azure_faas",
          "google_faas",
          "sysdig",
          "zammad",
          "mattermost",
          "zoom_chat",
          "zoom_meeting",
          "status_page_io",
          "webex",
          "dingtalk",
          "auvik",
          "dynamic",
          "zabbix"
        ]
      },
      "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": {
        "type": "object",
        "required": [
          "startsOn",
          "users",
          "rotation"
        ],
        "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": {
            "description": "Note: 'TIMES_OF_DAY' is just a UI state representation, the API always uses 'TIMES_OF_WEEK'",
            "type": "string",
            "enum": [
              "TIMES_OF_WEEK"
            ]
          },
          "restrictions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheduleLayerRestriction"
            }
          }
        }
      },
      "ScheduleLayerRestriction": {
        "type": "object",
        "required": [
          "from",
          "to"
        ],
        "properties": {
          "from": {
            "$ref": "#/components/schemas/TimeOfWeek"
          },
          "to": {
            "$ref": "#/components/schemas/TimeOfWeek"
          }
        }
      },
      "TimeOfWeek": {
        "type": "object",
        "required": [
          "dayOfWeek",
          "time"
        ],
        "properties": {
          "dayOfWeek": {
            "type": "string",
            "enum": [
              "MONDAY",
              "TUESDAY",
              "WEDNESDAY",
              "THURSDAY",
              "FRIDAY",
              "SATURDAY",
              "SUNDAY"
            ]
          },
          "time": {
            "type": "string",
            "format": "15:00"
          }
        }
      },
      "Connector": {
        "type": "object",
        "required": [
          "type",
          "name"
        ],
        "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",
        "properties": {}
      },
      "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": {
        "type": "object",
        "required": [
          "connectorType",
          "name"
        ],
        "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
          },
          "delaySec": {
            "description": "May only be used with triggerType 'alert-escalation-ended' selected",
            "type": "number",
            "minimum": 0,
            "maximum": 7200
          },
          "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"
              ]
            }
          },
          "alertFilter": {
            "type": "object",
            "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"
                    }
                  }
                }
              }
            }
          },
          "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"
              }
            ]
          },
          "teams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamRel"
            }
          }
        }
      },
      "CParamsAutomationRule": {
        "type": "object",
        "required": [
          "alertType",
          "serviceStatus",
          "serviceIds"
        ],
        "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": {
        "type": "object",
        "required": [
          "channelId"
        ],
        "properties": {
          "channelId": {
            "description": "The telegram group id, usually i64, as string",
            "type": "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": {
        "type": "object",
        "required": [
          "queueId"
        ],
        "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",
        "properties": {}
      },
      "CParamsMicrosoftTeams": {
        "type": "object",
        "required": [
          "channelId",
          "teamId"
        ],
        "properties": {
          "channelId": {
            "type": "string"
          },
          "channelName": {
            "type": "string"
          },
          "teamId": {
            "type": "string"
          },
          "teamName": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "chat",
              "meeting"
            ]
          }
        }
      },
      "CParamsSlack": {
        "type": "object",
        "required": [
          "channelId"
        ],
        "properties": {
          "channelId": {
            "type": "string"
          },
          "channelName": {
            "type": "string"
          },
          "teamDomain": {
            "type": "string"
          },
          "teamId": {
            "type": "string"
          }
        }
      },
      "CParamsWebhook": {
        "type": "object",
        "properties": {
          "webhookUrl": {
            "type": "string"
          },
          "bodyTemplate": {
            "type": "string"
          }
        }
      },
      "CParamsZendesk": {
        "type": "object",
        "properties": {
          "priority": {
            "type": "string"
          }
        }
      },
      "CParamsDiscord": {
        "type": "object",
        "properties": {}
      },
      "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"
          }
        }
      },
      "MaintenanceWindow": {
        "type": "object",
        "properties": {
          "summary": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "timezone": {
            "$ref": "#/components/schemas/TimeZone"
          },
          "start": {
            "type": "string",
            "format": "date-time"
          },
          "end": {
            "type": "string",
            "format": "date-time"
          },
          "alertSources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlertSource"
            },
            "maxItems": 50
          },
          "services": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceNoIncludes"
            },
            "maxItems": 50
          },
          "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": {
            "description": "Date in ISO-8601",
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "description": "Date in ISO-8601",
            "type": "string",
            "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"
          }
        }
      },
      "AlertSource": {
        "type": "object",
        "required": [
          "name",
          "escalationPolicy",
          "integrationType"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "teams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamRel"
            }
          },
          "name": {
            "type": "string"
          },
          "iconUrl": {
            "type": "string"
          },
          "lightIconUrl": {
            "type": "string"
          },
          "darkIconUrl": {
            "type": "string"
          },
          "escalationPolicy": {
            "$ref": "#/components/schemas/EscalationPolicy"
          },
          "integrationType": {
            "$ref": "#/components/schemas/IntegrationType"
          },
          "integrationKey": {
            "type": "string"
          },
          "integrationUrl": {
            "type": "string",
            "readOnly": true
          },
          "autoResolutionTimeout": {
            "type": "string",
            "format": "ISO-8601"
          },
          "alertGroupingWindow": {
            "type": "string",
            "format": "ISO-8601"
          },
          "alertCreation": {
            "type": "string",
            "default": "ONE_ALERT_PER_EMAIL",
            "enum": [
              "ONE_ALERT_PER_EMAIL",
              "ONE_ALERT_PER_EMAIL_SUBJECT",
              "ONE_PENDING_ALERT_ALLOWED",
              "ONE_OPEN_ALERT_ALLOWED",
              "OPEN_RESOLVE_ON_EXTRACTION",
              "ONE_ALERT_GROUPED_PER_WINDOW"
            ]
          },
          "status": {
            "type": "string",
            "readOnly": true,
            "enum": [
              "PENDING",
              "ALL_ACCEPTED",
              "ALL_RESOLVED",
              "IN_MAINTENANCE",
              "DISABLED"
            ]
          },
          "emailFiltered": {
            "type": "boolean",
            "default": false
          },
          "emailResolveFiltered": {
            "type": "boolean",
            "default": false
          },
          "active": {
            "type": "boolean",
            "default": true
          },
          "emailPredicates": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string",
                  "enum": [
                    "EMAIL_FROM",
                    "EMAIL_SUBJECT",
                    "EMAIL_BODY"
                  ]
                },
                "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"
                }
              }
            }
          },
          "emailResolvePredicates": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string",
                  "enum": [
                    "EMAIL_FROM",
                    "EMAIL_SUBJECT",
                    "EMAIL_BODY"
                  ]
                },
                "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"
                }
              }
            }
          },
          "resolveKeyExtractor": {
            "type": "object",
            "properties": {
              "field": {
                "type": "string",
                "enum": [
                  "EMAIL_SUBJECT",
                  "EMAIL_BODY"
                ]
              },
              "criteria": {
                "type": "string",
                "enum": [
                  "ALL_TEXT_BEFORE",
                  "MATCHES_REGEX",
                  "ALL_TEXT_AFTER"
                ]
              },
              "value": {
                "type": "string"
              }
            }
          },
          "filterOperator": {
            "type": "string",
            "enum": [
              "AND",
              "OR"
            ]
          },
          "resolveFilterOperator": {
            "type": "string",
            "enum": [
              "AND",
              "OR"
            ]
          },
          "alertPriorityRule": {
            "$ref": "#/components/schemas/AlertPriorityRule"
          },
          "supportHours": {
            "$ref": "#/components/schemas/SupportHour"
          },
          "heartbeat": {
            "type": "object",
            "properties": {
              "summary": {
                "type": "string"
              },
              "intervalSec": {
                "type": "integer"
              },
              "status": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "OVERDUE",
                  "ON_TIME",
                  "NEVER_RECEIVED"
                ]
              },
              "lastPingReceivedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              }
            }
          },
          "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"
          }
        }
      },
      "AlertSourceTemplate": {
        "type": "object",
        "properties": {
          "textTemplate": {
            "description": "For more information on alert source templating, please visit: https://docs.ilert.com/alerting/alert-sources#alert-template.\n\n Example: <br />`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.",
            "type": "string"
          },
          "elements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlertSourceTemplateElement"
            }
          }
        }
      },
      "AlertSourceTemplateElement": {
        "type": "object",
        "required": [
          "type, val"
        ],
        "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": {
        "type": "object",
        "required": [
          "text",
          "hrefTemplate"
        ],
        "properties": {
          "text": {
            "type": "string"
          },
          "hrefTemplate": {
            "$ref": "#/components/schemas/AlertSourceTemplate"
          }
        }
      },
      "AlertSourcePriorityTemplate": {
        "type": "object",
        "required": [
          "valueTemplate",
          "mappings"
        ],
        "properties": {
          "valueTemplate": {
            "$ref": "#/components/schemas/AlertSourceTemplate"
          },
          "mappings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlertSourcePriorityTemplateMapping"
            }
          }
        }
      },
      "AlertSourcePriorityTemplateMapping": {
        "type": "object",
        "required": [
          "value",
          "priority"
        ],
        "properties": {
          "value": {
            "type": "string"
          },
          "priority": {
            "type": "string",
            "enum": [
              "LOW",
              "HIGH"
            ]
          }
        }
      },
      "AlertSourceNoIncludes": {
        "type": "object",
        "required": [
          "name",
          "escalationPolicy",
          "integrationType"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "teams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamRel"
            }
          },
          "name": {
            "type": "string"
          },
          "iconUrl": {
            "type": "string"
          },
          "lightIconUrl": {
            "type": "string"
          },
          "darkIconUrl": {
            "type": "string"
          },
          "escalationPolicy": {
            "$ref": "#/components/schemas/EscalationPolicy"
          },
          "integrationType": {
            "$ref": "#/components/schemas/IntegrationType"
          },
          "integrationKey": {
            "type": "string"
          },
          "integrationUrl": {
            "type": "string",
            "readOnly": true
          },
          "autoResolutionTimeout": {
            "type": "string",
            "format": "ISO-8601"
          },
          "alertGroupingWindow": {
            "type": "string",
            "format": "ISO-8601"
          },
          "alertCreation": {
            "type": "string",
            "default": "ONE_ALERT_PER_EMAIL",
            "enum": [
              "ONE_ALERT_PER_EMAIL",
              "ONE_ALERT_PER_EMAIL_SUBJECT",
              "ONE_PENDING_ALERT_ALLOWED",
              "ONE_OPEN_ALERT_ALLOWED",
              "OPEN_RESOLVE_ON_EXTRACTION",
              "ONE_ALERT_GROUPED_PER_WINDOW"
            ]
          },
          "status": {
            "type": "string",
            "readOnly": true,
            "enum": [
              "PENDING",
              "ALL_ACCEPTED",
              "ALL_RESOLVED",
              "IN_MAINTENANCE",
              "DISABLED"
            ]
          },
          "emailFiltered": {
            "type": "boolean",
            "default": false
          },
          "emailResolveFiltered": {
            "type": "boolean",
            "default": false
          },
          "active": {
            "type": "boolean",
            "default": true
          },
          "emailPredicates": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string",
                  "enum": [
                    "EMAIL_FROM",
                    "EMAIL_SUBJECT",
                    "EMAIL_BODY"
                  ]
                },
                "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"
                }
              }
            }
          },
          "emailResolvePredicates": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string",
                  "enum": [
                    "EMAIL_FROM",
                    "EMAIL_SUBJECT",
                    "EMAIL_BODY"
                  ]
                },
                "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"
                }
              }
            }
          },
          "resolveKeyExtractor": {
            "type": "object",
            "properties": {
              "field": {
                "type": "string",
                "enum": [
                  "EMAIL_SUBJECT",
                  "EMAIL_BODY"
                ]
              },
              "criteria": {
                "type": "string",
                "enum": [
                  "ALL_TEXT_BEFORE",
                  "MATCHES_REGEX",
                  "ALL_TEXT_AFTER"
                ]
              },
              "value": {
                "type": "string"
              }
            }
          },
          "filterOperator": {
            "type": "string",
            "enum": [
              "AND",
              "OR"
            ]
          },
          "resolveFilterOperator": {
            "type": "string",
            "enum": [
              "AND",
              "OR"
            ]
          },
          "alertPriorityRule": {
            "$ref": "#/components/schemas/AlertPriorityRule"
          },
          "supportHours": {
            "$ref": "#/components/schemas/SupportHour"
          },
          "heartbeat": {
            "type": "object",
            "properties": {
              "summary": {
                "type": "string"
              },
              "intervalSec": {
                "type": "integer"
              },
              "status": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "OVERDUE",
                  "ON_TIME",
                  "NEVER_RECEIVED"
                ]
              },
              "lastPingReceivedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              }
            }
          },
          "bidirectional": {
            "type": "boolean",
            "readOnly": true
          }
        }
      },
      "AlertSourceRel": {
        "type": "object",
        "required": [
          "name",
          "escalationPolicy",
          "integrationType"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "teams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamRel"
            }
          },
          "name": {
            "type": "string"
          },
          "iconUrl": {
            "type": "string"
          },
          "lightIconUrl": {
            "type": "string"
          },
          "darkIconUrl": {
            "type": "string"
          },
          "escalationPolicy": {
            "$ref": "#/components/schemas/EscalationPolicy"
          },
          "integrationType": {
            "$ref": "#/components/schemas/IntegrationType"
          },
          "integrationKey": {
            "type": "string"
          },
          "integrationUrl": {
            "type": "string",
            "readOnly": true
          },
          "autoResolutionTimeout": {
            "type": "string",
            "format": "ISO-8601"
          },
          "alertGroupingWindow": {
            "type": "string",
            "format": "ISO-8601"
          },
          "alertCreation": {
            "type": "string",
            "default": "ONE_ALERT_PER_EMAIL",
            "enum": [
              "ONE_ALERT_PER_EMAIL",
              "ONE_ALERT_PER_EMAIL_SUBJECT",
              "ONE_PENDING_ALERT_ALLOWED",
              "ONE_OPEN_ALERT_ALLOWED",
              "OPEN_RESOLVE_ON_EXTRACTION",
              "ONE_ALERT_GROUPED_PER_WINDOW"
            ]
          },
          "status": {
            "type": "string",
            "readOnly": true,
            "enum": [
              "PENDING",
              "ALL_ACCEPTED",
              "ALL_RESOLVED",
              "IN_MAINTENANCE",
              "DISABLED"
            ]
          },
          "emailFiltered": {
            "type": "boolean",
            "default": false
          },
          "emailResolveFiltered": {
            "type": "boolean",
            "default": false
          },
          "active": {
            "type": "boolean",
            "default": true
          },
          "emailPredicates": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string",
                  "enum": [
                    "EMAIL_FROM",
                    "EMAIL_SUBJECT",
                    "EMAIL_BODY"
                  ]
                },
                "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"
                }
              }
            }
          },
          "emailResolvePredicates": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string",
                  "enum": [
                    "EMAIL_FROM",
                    "EMAIL_SUBJECT",
                    "EMAIL_BODY"
                  ]
                },
                "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"
                }
              }
            }
          },
          "resolveKeyExtractor": {
            "type": "object",
            "properties": {
              "field": {
                "type": "string",
                "enum": [
                  "EMAIL_SUBJECT",
                  "EMAIL_BODY"
                ]
              },
              "criteria": {
                "type": "string",
                "enum": [
                  "ALL_TEXT_BEFORE",
                  "MATCHES_REGEX",
                  "ALL_TEXT_AFTER"
                ]
              },
              "value": {
                "type": "string"
              }
            }
          },
          "filterOperator": {
            "type": "string",
            "enum": [
              "AND",
              "OR"
            ]
          },
          "resolveFilterOperator": {
            "type": "string",
            "enum": [
              "AND",
              "OR"
            ]
          },
          "alertPriorityRule": {
            "$ref": "#/components/schemas/AlertPriorityRule"
          },
          "supportHours": {
            "$ref": "#/components/schemas/SimpleIdField64"
          },
          "heartbeat": {
            "type": "object",
            "properties": {
              "summary": {
                "type": "string"
              },
              "intervalSec": {
                "type": "integer"
              },
              "status": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "OVERDUE",
                  "ON_TIME",
                  "NEVER_RECEIVED"
                ]
              },
              "lastPingReceivedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              }
            }
          },
          "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"
          }
        }
      },
      "SimpleIdField64": {
        "description": "For POST and PUT requests only the id field is required for sub entities, e.g. status page -> service, alert source -> support hour",
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "SimpleIdFieldStr": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "ManualAlert": {
        "type": "object",
        "required": [
          "summary",
          "alertSource"
        ],
        "properties": {
          "summary": {
            "type": "string"
          },
          "details": {
            "type": "string"
          },
          "alertSource": {
            "$ref": "#/components/schemas/SimpleIdField64"
          },
          "escalationPolicy": {
            "$ref": "#/components/schemas/SimpleIdField64"
          },
          "priority": {
            "$ref": "#/components/schemas/AlertPriority"
          },
          "assignedTo": {
            "description": "This field (type: User) is deprecated, please use 'responders' instead",
            "type": "object",
            "properties": {
              "id": {
                "type": "number"
              }
            }
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventImage"
            }
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventLink"
            }
          },
          "responders": {
            "description": "List of responders (users), only user.id is required.",
            "type": "array",
            "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": {
          "summary": {
            "type": "string"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "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": {
            "description": "This field (type: User) is deprecated, please use 'responders' instead",
            "type": "object",
            "properties": {
              "id": {
                "type": "number"
              }
            }
          },
          "nextEscalation": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "escalationRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EscalationRule"
            },
            "readOnly": true
          },
          "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": {
            "readOnly": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlertResponder"
            }
          }
        }
      },
      "EventImage": {
        "type": "object",
        "properties": {
          "src": {
            "type": "string"
          },
          "href": {
            "type": "string"
          },
          "alt": {
            "type": "string"
          }
        }
      },
      "EventLink": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        }
      },
      "EventComment": {
        "type": "object",
        "properties": {
          "creator": {
            "type": "string"
          },
          "content": {
            "type": "string"
          }
        }
      },
      "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": {
            "description": "An error message in case the notification status is ERROR.",
            "type": "string"
          }
        }
      },
      "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",
            "properties": {},
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "LogFilterType": {
        "type": "string",
        "enum": [
          "NOTIFICATIONS",
          "ALERT_SOURCE_EVENTS",
          "CALL_ROUTING_EVENTS",
          "ALERT_UPDATES",
          "CONNECTOR_EVENTS"
        ]
      },
      "SingleTimePoint": {
        "type": "object",
        "required": [
          "value"
        ],
        "properties": {
          "timestamp": {
            "description": "The unix epoch second of your time point",
            "type": "number",
            "format": "int64"
          },
          "value": {
            "description": "Value of your time point",
            "type": "number",
            "format": "double"
          }
        }
      },
      "MultipleTimePoint": {
        "type": "object",
        "required": [
          "value"
        ],
        "properties": {
          "series": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SingleTimePoint"
            }
          }
        }
      },
      "SeriesOption": {
        "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",
        "type": "object",
        "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": {
        "type": "object",
        "required": [
          "apiKey",
          "eventType",
          "summary"
        ],
        "properties": {
          "summary": {
            "description": "The event summary. Will be used as the alert summary if a new alert will be created.",
            "type": "string"
          },
          "apiKey": {
            "type": "string"
          },
          "eventType": {
            "description": "the event type",
            "type": "string",
            "enum": [
              "ALERT",
              "ACCEPT",
              "RESOLVE",
              "COMMENT"
            ]
          },
          "details": {
            "description": "The event details. Will be used as the alert details if a new alert will be created.",
            "type": "string"
          },
          "alertKey": {
            "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",
            "type": "string"
          },
          "priority": {
            "$ref": "#/components/schemas/AlertPriority"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventImage"
            }
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventLink"
            }
          },
          "comments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventComment"
            }
          },
          "customDetails": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "routingKey": {
            "description": "Optional routing key that overwrites the escalation policy of the alert source for ALERT events. Must map to routingKey of escalation policy",
            "type": "string"
          }
        }
      },
      "EventResponse": {
        "type": "object",
        "properties": {}
      },
      "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": {
        "description": "the incident status",
        "type": "string",
        "enum": [
          "INVESTIGATING",
          "IDENTIFIED",
          "MONITORING",
          "RESOLVED"
        ]
      },
      "IncidentTemplate": {
        "type": "object",
        "properties": {
          "summary": {
            "type": "string"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/IncidentStatus"
          },
          "message": {
            "type": "string"
          },
          "sendNotification": {
            "type": "boolean"
          },
          "teams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamRel"
            }
          }
        }
      },
      "ServiceStatus": {
        "description": "the service status",
        "type": "string",
        "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": {
                "type": "number",
                "format": "float",
                "minimum": 0,
                "maximum": 100,
                "readOnly": true
              },
              "p60": {
                "type": "number",
                "format": "float",
                "minimum": 0,
                "maximum": 100,
                "readOnly": true
              },
              "p30": {
                "type": "number",
                "format": "float",
                "minimum": 0,
                "maximum": 100,
                "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"
          }
        },
        "readOnly": true
      },
      "Service": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/ServiceStatus"
          },
          "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": {
            "description": "Note that this only contains the latest 10 unresolved incidents, use /api/incidents?service=x if more or specific results are needed",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncidentNoIncludes"
            },
            "readOnly": true
          }
        }
      },
      "ServiceUptimeOnly": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/ServiceStatus"
          },
          "oneOpenIncidentOnly": {
            "type": "boolean"
          },
          "showUptimeHistory": {
            "type": "boolean"
          },
          "teams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamRel"
            }
          },
          "uptime": {
            "$ref": "#/components/schemas/ServiceUptime"
          }
        }
      },
      "ServiceNoIncludes": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/ServiceStatus"
          },
          "oneOpenIncidentOnly": {
            "type": "boolean"
          },
          "showUptimeHistory": {
            "type": "boolean"
          },
          "teams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamRel"
            }
          }
        }
      },
      "Incident": {
        "type": "object",
        "properties": {
          "summary": {
            "type": "string"
          },
          "id": {
            "type": "number"
          },
          "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",
            "items": {
              "$ref": "#/components/schemas/TeamRel"
            },
            "readOnly": true
          }
        }
      },
      "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": {
          "summary": {
            "type": "string"
          },
          "id": {
            "type": "number"
          },
          "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",
            "items": {
              "$ref": "#/components/schemas/TeamRel"
            },
            "readOnly": true
          }
        }
      },
      "IncidentNoIncludes": {
        "type": "object",
        "properties": {
          "summary": {
            "type": "string"
          },
          "id": {
            "type": "number"
          },
          "status": {
            "$ref": "#/components/schemas/IncidentStatus"
          },
          "message": {
            "type": "string"
          },
          "sendNotification": {
            "type": "boolean"
          },
          "createdAt": {
            "description": "May be overwritten during the creation of the incident, otherwise read-only",
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "description": "May be overwritten during the creation of the incident, otherwise read-only",
            "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
          }
        }
      },
      "AutomationRule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "alertType": {
            "type": "string",
            "enum": [
              "CREATED",
              "ACCEPTED"
            ]
          },
          "resolveIncident": {
            "type": "boolean"
          },
          "resolveService": {
            "type": "boolean"
          },
          "serviceStatus": {
            "$ref": "#/components/schemas/ServiceStatus"
          },
          "template": {
            "$ref": "#/components/schemas/IncidentTemplate"
          },
          "service": {
            "$ref": "#/components/schemas/ServiceNoIncludes"
          },
          "alertSource": {
            "$ref": "#/components/schemas/AlertSource"
          },
          "sendNotification": {
            "type": "boolean"
          }
        }
      },
      "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": {
            "description": "ipv4 or ipv6 addresses to give access to. Can only be set on 'PRIVATE' status pages",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "structure": {
            "$ref": "#/components/schemas/StatusPageStructure"
          },
          "appearance": {
            "type": "string",
            "enum": [
              "LIGHT",
              "DARK"
            ]
          }
        }
      },
      "StatusPageElement": {
        "type": "object",
        "required": [
          "id",
          "type"
        ],
        "properties": {
          "id": {
            "description": "The id of the service or group that this element references",
            "type": "integer",
            "format": "int64"
          },
          "type": {
            "type": "string",
            "enum": [
              "SERVICE",
              "GROUP"
            ]
          },
          "options": {
            "description": "Note: 'expand' can only be set when type is 'SERVICE', 'no-graph' can only be set when type is 'GROUP'",
            "type": "string",
            "enum": [
              "expand",
              "no-graph"
            ]
          },
          "children": {
            "description": "Optional children of this element. Note: children may only be added to elements of type 'GROUP'",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StatusPageElement"
            }
          }
        }
      },
      "StatusPageStructure": {
        "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.",
        "type": "object",
        "properties": {
          "elements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StatusPageElement"
            }
          }
        }
      },
      "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": {
            "description": "ipv4 or ipv6 addresses to give access to. Can only be set on 'PRIVATE' status pages",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "structure": {
            "$ref": "#/components/schemas/StatusPageStructure"
          },
          "subscribed": {
            "description": "This is an include field, it is not available in the list resource",
            "type": "boolean",
            "readOnly": true
          },
          "groups": {
            "description": "This is an include field, it is not available in the list resource. Read-only, use the sub resource to manipulate groups.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StatusPageGroup"
            },
            "readOnly": true
          },
          "appearance": {
            "type": "string",
            "enum": [
              "LIGHT",
              "DARK"
            ]
          }
        }
      },
      "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": {
            "description": "ipv4 or ipv6 addresses to give access to. Can only be set on 'PRIVATE' status pages",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "subscribed": {
            "description": "This is an include field, it is not available in the list resource",
            "type": "boolean",
            "readOnly": true
          }
        }
      },
      "MParamsDatadog": {
        "type": "object",
        "required": [
          "region",
          "apiKey",
          "applicationKey"
        ],
        "properties": {
          "region": {
            "type": "string"
          },
          "apiKey": {
            "type": "string"
          },
          "applicationKey": {
            "type": "string"
          }
        }
      },
      "MParamsPrometheus": {
        "type": "object",
        "required": [
          "url",
          "authType"
        ],
        "properties": {
          "url": {
            "type": "string"
          },
          "authType": {
            "type": "string",
            "enum": [
              "NONE",
              "BASIC",
              "HEADER"
            ]
          },
          "basicUser": {
            "description": "Optional, required for 'BASIC'",
            "type": "string"
          },
          "basicPass": {
            "description": "Optional, required for 'BASIC'",
            "type": "string"
          },
          "headerKey": {
            "description": "Optional, required for 'HEADER'",
            "type": "string"
          },
          "headerValue": {
            "description": "Optional, required for 'HEADER'",
            "type": "string"
          }
        }
      },
      "MetricDataSourceMetadata": {
        "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": {
        "type": "object",
        "required": [
          "name",
          "type",
          "metadata"
        ],
        "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": {
        "type": "object",
        "required": [
          "query"
        ],
        "properties": {
          "query": {
            "type": "string"
          }
        }
      },
      "MPrometheusMetadata": {
        "type": "object",
        "required": [
          "query"
        ],
        "properties": {
          "query": {
            "type": "string"
          }
        }
      },
      "MetricMetadata": {
        "description": "Only required if the metric has a dataSource. You may not change this after creation.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/MDataDogMetadata"
          },
          {
            "$ref": "#/components/schemas/MPrometheusMetadata"
          }
        ],
        "default": null
      },
      "MetricList": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "aggregationType": {
            "$ref": "#/components/schemas/MetricAggregationType"
          },
          "displayType": {
            "$ref": "#/components/schemas/MetricDisplayType"
          },
          "interpolateGaps": {
            "type": "boolean",
            "default": false
          },
          "lockYAxisMax": {
            "type": "number",
            "format": "double",
            "default": null
          },
          "lockYAxisMin": {
            "type": "number",
            "format": "double",
            "default": null
          },
          "mouseOverDecimal": {
            "type": "number",
            "format": "int32",
            "default": 0,
            "minimum": 0,
            "maximum": 6
          },
          "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": {
          "description": {
            "type": "string"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "aggregationType": {
            "$ref": "#/components/schemas/MetricAggregationType"
          },
          "displayType": {
            "$ref": "#/components/schemas/MetricDisplayType"
          },
          "interpolateGaps": {
            "type": "boolean",
            "default": false
          },
          "lockYAxisMax": {
            "type": "number",
            "format": "double",
            "default": null
          },
          "lockYAxisMin": {
            "type": "number",
            "format": "double",
            "default": null
          },
          "mouseOverDecimal": {
            "type": "number",
            "format": "int32",
            "default": 0,
            "minimum": 0,
            "maximum": 6
          },
          "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": {
          "description": {
            "type": "string"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "aggregationType": {
            "$ref": "#/components/schemas/MetricAggregationType"
          },
          "displayType": {
            "$ref": "#/components/schemas/MetricDisplayType"
          },
          "interpolateGaps": {
            "type": "boolean",
            "default": false
          },
          "lockYAxisMax": {
            "type": "number",
            "format": "double",
            "default": null
          },
          "lockYAxisMin": {
            "type": "number",
            "format": "double",
            "default": null
          },
          "mouseOverDecimal": {
            "type": "number",
            "format": "int32",
            "default": 0,
            "minimum": 0,
            "maximum": 6
          },
          "showValuesOnMouseOver": {
            "type": "boolean",
            "default": false
          },
          "unitLabel": {
            "type": "string"
          },
          "teams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamRel"
            }
          }
        }
      },
      "MetricPost": {
        "type": "object",
        "required": [
          "name",
          "displayType",
          "aggregationType"
        ],
        "properties": {
          "description": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "aggregationType": {
            "$ref": "#/components/schemas/MetricAggregationType"
          },
          "displayType": {
            "$ref": "#/components/schemas/MetricDisplayType"
          },
          "interpolateGaps": {
            "type": "boolean",
            "default": "false"
          },
          "lockYAxisMax": {
            "type": "number",
            "format": "double",
            "default": null
          },
          "lockYAxisMin": {
            "type": "number",
            "format": "double",
            "default": null
          },
          "mouseOverDecimal": {
            "type": "number",
            "format": "int32",
            "default": 0,
            "minimum": 0,
            "maximum": 6
          },
          "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": {
                "description": "dataSource is required when providing metadata",
                "type": "number"
              }
            }
          }
        }
      },
      "IncidentsAddSubscribersRequest": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/TeamUserOption"
        }
      },
      "ServicesSetPrivateSubscribersRequest": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/TeamUserOption"
        }
      },
      "ContactsGetUserEmailsResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ContactEmail"
        }
      },
      "ContactsGetUserPhoneNumbersResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ContactPhoneNumber"
        }
      },
      "NotificationPreferencesGetUserAlertsResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/NotificationPreferencesAlert"
        }
      },
      "NotificationPreferencesGetUserDutyPreferencesResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/NotificationPreferencesDuty"
        }
      },
      "NotificationPreferencesGetUserUpdatePreferencesResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/NotificationPreferencesUpdate"
        }
      },
      "NotificationPreferencesGetUserSubscriptionsResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/NotificationPreferencesSubscription"
        }
      },
      "NumbersListAvailableNumbersResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/OutboundNumber"
        }
      },
      "IntegrationsListAvailableResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Integration"
        }
      },
      "UsersListExistingUsersResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/User"
        }
      },
      "AlertsListMatchingCriteriaResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Alert"
        }
      },
      "AlertsGetAssignableRespondersResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/SuggestedResponder"
        }
      },
      "AlertsGetNotificationsResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Notification"
        }
      },
      "AlertsGetLogEntriesResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/LogEntry"
        }
      },
      "SchedulesListOnCallSchedulesResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Schedule"
        }
      },
      "SchedulesGetShiftsByIdAndDateRangeResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Shift"
        }
      },
      "SchedulesGetOverridesByIdResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Shift"
        }
      },
      "OnCallsListWithFiltersResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/OnCall"
        }
      },
      "AlertSourcesListSourcesResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/AlertSourceNoIncludes"
        }
      },
      "SupportHoursListResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/SupportHour"
        }
      },
      "MaintenanceWindowsListResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/MaintenanceWindow"
        }
      },
      "EscalationPoliciesListPoliciesResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/EscalationPolicy"
        }
      },
      "AlertActionsGetListResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/AlertAction"
        }
      },
      "ConnectorsGetAvailableConnectorsResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Connector"
        }
      },
      "TeamsGetAllResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Team"
        }
      },
      "ReportsListAlertMetricsResponse": {
        "type": "array",
        "items": {
          "type": "array",
          "items": {
            "oneOf": [
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ]
          }
        }
      },
      "ReportsSummarizeAlertMetricsResponse": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "alertSourceId": {
              "type": "number"
            },
            "escalationPolicyId": {
              "type": "number"
            },
            "callRoutingNumberPhoneNumber": {
              "type": "string"
            },
            "count": {
              "type": "number"
            },
            "mtta": {
              "type": "number"
            },
            "mttr": {
              "type": "number"
            }
          }
        }
      },
      "ReportsListApiKeyUsageMetricsResponse": {
        "type": "array",
        "items": {
          "type": "array",
          "items": {
            "oneOf": [
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ]
          }
        }
      },
      "IncidentTemplatesGetListResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/IncidentTemplate"
        }
      },
      "ServicesListAvailableServicesResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Service"
        }
      },
      "AutomationRulesGetDeprecatedRulesResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/AutomationRule"
        }
      },
      "IncidentsGetIncidentListResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Incident"
        }
      },
      "IncidentsForecastAffectedSubscribersAndStatusPagesResponse": {
        "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
          }
        }
      },
      "IncidentsGetPrivateSubscribersResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/TeamUserOption"
        }
      },
      "ServicesGetSubscribersResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/TeamUserOption"
        }
      },
      "StatusPagesGetStatusPagesResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/StatusPageList"
        }
      },
      "StatusPagesGetGroupsResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/StatusPageGroup"
        }
      },
      "StatusPagesGetPrivateSubscribersResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/TeamUserOption"
        }
      },
      "ServiceOutagesGetServiceOutagesResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ServiceOutage"
        }
      },
      "ServiceOutagesGetOverridesResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ServiceOutageOverride"
        }
      },
      "MetricDataSourcesListResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/MetricDataSourceNoIncludes"
        }
      },
      "MetricsGetMetricsResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/MetricList"
        }
      }
    }
  },
  "security": [
    {
      "apiKey": []
    }
  ]
}