> ## Documentation Index
> Fetch the complete documentation index at: https://docs.incident.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create

> Create a new maintenance window.



## OpenAPI

````yaml /openapi/tags/maintenancewindows-v1.json post /v1/maintenance_windows
openapi: 3.0.3
info:
  description: "This is the API reference for incident.io.\n\nIt documents available API endpoints, provides examples of how to use it, and\ninstructions around things like authentication and error handling.\n\nThe API is hosted at:\n\n- https://api.incident.io/\n\nAnd you will need to create an API key via your [incident.io\ndashboard](https://app.incident.io/settings/api-keys) to make requests.\n\n# Making requests\n\nHere are the key concepts required to make requests to the incident.io API.\n\n## Authentication\n\nFor all requests made to the incident.io API, you'll need an API key.\n\nTo create an API key, head to the incident dashboard and visit [API\nkeys](https://app.incident.io/settings/api-keys). When you create the key, you'll be able to choose what actions it\ncan take for your account: choose carefully, as those roles can only be set\nwhen you first create the key. We'll only show you the token once, so make sure\nyou store it somewhere safe.\n\nAPI keys are global to your incident.io account, and can be managed by anyone\nwho has the right permissions. We display the user that created the API key,\nand the API key will remain valid if that user becomes deactivated.\n\nOnce you have the key, you should make requests to the API that set the\n`Authorization` request header using a \"Bearer\" authentication scheme:\n\n```\nAuthorization: Bearer <YOUR_API_KEY>\n```\n\n## Rate Limits\n\nThe incident.io API enforces rate limits to ensure consistent performance for all users.\n\nThe default rate limit is 1200 requests/minute per API key. This limit applies to most endpoints across the API.\n\nSome endpoints have lower rate limits, particularly those that interact with external third-party systems that impose\ntheir own limitations. These specific limits vary by endpoint, and we recommend relying on the rate-limit error\nresponses to understand usage patterns and implement appropriate retry strategies.\n\nWhen you exceed a rate limit, the API will respond with a `429 Too Many Requests` status code, along with a JSON\nresponse that includes information about the limit and when you can retry:\n\n```json\n{\n    \"type\": \"too_many_requests\",\n    \"status\": 429,\n    \"request_id\": \"b839a403-7704-41c1-bf6a-39a2d68caefa\",\n    \"rate_limit\": {\n        \"name\": \"api_key_name\",\n        \"limit\": 1200,\n        \"remaining\": 0,\n        \"retry_after\": \"Thu, 17 Apr 2025 11:17:18 UTC\"\n    },\n    \"errors\": [\n        {\n            \"code\": \"too_many_requests\",\n            \"message\": \"Too many requests hit the API too quickly. We recommend an exponential backoff of your requests.\"\n        }\n    ]\n}\n```\n\nThe response includes:\n* The name of the API key (`name`)\n* The bucket limit (`limit`)\n* The number of requests remaining (`remaining`)\n* When you can retry requests (`retry_after`)\n\n## Errors\n\nWe use standard HTTP response codes to indicate the status or failure of API\nrequests.\n\nThe API response body will be JSON, and contain more detailed information on the\nnature of the error.\n\nAn example error when a request is made without an API key:\n\n```json\n{\n  \"type\": \"authentication_error\",\n  \"status\": 401,\n  \"request_id\": \"8e3cc412-b49d-4957-9073-2c19d2c61804\",\n  \"errors\": [\n    {\n      \"code\": \"missing_authorization_material\",\n      \"message\": \"No authorization material provided in request\"\n    }\n  ]\n}\n```\n\nNote that the error:\n\n- Contains the HTTP status (`401`)\n- References the type of error (`authentication_error`)\n- Includes a `request_id` that can be provided to incident.io support to help\n\tdebug questions with your API request\n- Provides a list of individual errors, which go into detail about why the error\n\toccurred\n\nThe most common error will be a 422 Validation Error, which is returned when the\nrequest was rejected due to failing validations.\n\nThese errors look like this:\n\n```json\n{\n  \"type\": \"validation_error\",\n  \"status\": 422,\n  \"request_id\": \"631766c4-4afd-4803-997c-cd700928fa4b\",\n  \"errors\": [\n    {\n      \"code\": \"is_required\",\n      \"message\": \"A severity is required to open an incident\",\n      \"source\": {\n        \"field\": \"severity_id\"\n      }\n    }\n  ]\n}\n```\n\nThis error is caused by not providing a severity identifier, which should be at\nthe `severity_id` field of the request payload. Errors like these can be mapped to\nforms, should you be integrating with the API from a user-interface.\n\n## Compatibility\n\nWe won't make breaking changes to existing API services or endpoints, but will\nexpect integrators to upgrade themselves to the latest API endpoints within 3\nmonths of us deprecating the old service.\n\nWe will make changes that are considered backwards compatible, which include:\n\n- Adding new API endpoints and services\n- Adding new properties to responses from existing API endpoints\n- Reordering properties returned from existing API endpoints\n- Adding optional request parameters to existing API endpoints\n- Altering the format or length of IDs\n- Adding new values to enums\n\nIt is important that clients are robust to these changes, to ensure reliable\nintegrations.\n\nAs an example, if you are generating a client using an openapi-generator, ensure\nthe generated client is configured to support unknown enum values, often\nconfigured via the `enumUnknownDefaultCase` parameter.\n\nWhen breaking changes are unavoidable, we'll create a new service version on a\nseparate path, and run them in parallel.\n\nFor example:\n\n- https://api.incident.io/v1/incidents\n- https://api.incident.io/v2/incidents\n\nFor any questions, email support@incident.io.\n"
  title: incident.io
  version: 1.0.0
servers:
  - url: https://api.incident.io
security:
  - BearerAuth: []
tags:
  - description: >-
      Manage maintenance windows for temporarily overriding alert routing during
      planned maintenance.


      Maintenance windows allow you to suppress or redirect alerts during
      scheduled maintenance periods, preventing unnecessary escalations and
      noise.
    name: MaintenanceWindows V1
paths:
  /v1/maintenance_windows:
    post:
      tags:
        - MaintenanceWindows V1
      summary: Create
      description: Create a new maintenance window.
      operationId: MaintenanceWindows V1_Create
      requestBody:
        content:
          application/json:
            example:
              alert_condition_groups:
                - conditions:
                    - operation: one_of
                      param_bindings:
                        - array_value:
                            - literal: SEV123
                              reference: incident.severity
                          value:
                            literal: SEV123
                            reference: incident.severity
                      subject: incident.severity
              end_at: '2021-08-17T14:28:57.801578Z'
              escalation_targets:
                - escalation_paths:
                    array_value:
                      - literal: SEV123
                        reference: incident.severity
                    value:
                      literal: SEV123
                      reference: incident.severity
                  users:
                    array_value:
                      - literal: SEV123
                        reference: incident.severity
                    value:
                      literal: SEV123
                      reference: incident.severity
              incident_id: 01FCNDV6P870EA6S7TK1DSYDG0
              lead:
                email: bob@example.com
                id: 01G0J1EXE7AXZ2C93K61WBPYEH
                slack_user_id: USER123
              name: Planned database migration
              notification_message: Scheduled downtime for database migration
              notify_channels:
                - channel_id: C0ACTHQMHS8
                  channel_name: general
                  channel_type: public
              notify_end_minutes_before: 5
              notify_start_minutes_before: 15
              reroute_on_end: false
              resolve_on_end: false
              show_in_sidebar: true
              start_at: '2021-08-17T13:28:57.801578Z'
            schema:
              $ref: '#/components/schemas/MaintenanceWindowsCreatePayloadV1'
        required: true
      responses:
        '201':
          content:
            application/json:
              example:
                maintenance_window:
                  alert_condition_groups:
                    - conditions:
                        - operation:
                            label: Lawrence Jones
                            value: 01FCQSP07Z74QMMYPDDGQB9FTG
                          param_bindings:
                            - array_value:
                                - label: Lawrence Jones
                                  literal: SEV123
                                  reference: incident.severity
                              value:
                                label: Lawrence Jones
                                literal: SEV123
                                reference: incident.severity
                          subject:
                            label: Incident Severity
                            reference: incident.severity
                  archived_at: '2021-08-17T13:28:57.801578Z'
                  created_at: '2021-08-17T13:28:57.801578Z'
                  end_at: '2021-08-17T14:28:57.801578Z'
                  escalation_targets:
                    - escalation_paths:
                        array_value:
                          - label: Lawrence Jones
                            literal: SEV123
                            reference: incident.severity
                        value:
                          label: Lawrence Jones
                          literal: SEV123
                          reference: incident.severity
                      users:
                        array_value:
                          - label: Lawrence Jones
                            literal: SEV123
                            reference: incident.severity
                        value:
                          label: Lawrence Jones
                          literal: SEV123
                          reference: incident.severity
                  id: 01FCNDV6P870EA6S7TK1DSYDG0
                  incident_id: 01FCNDV6P870EA6S7TK1DSYDG0
                  lead:
                    alert:
                      id: 01GW2G3V0S59R238FAHPDS1R66
                      title: '*errors.withMessage: PG::Error failed to connect'
                    api_key:
                      id: 01FCNDV6P870EA6S7TK1DSYDG0
                      name: My test API key
                    user:
                      email: lisa@incident.io
                      id: 01FCNDV6P870EA6S7TK1DSYDG0
                      name: Lisa Karlin Curtis
                      role: owner
                      slack_user_id: U02AYNF2XJM
                    workflow:
                      id: 01FCNDV6P870EA6S7TK1DSYDG0
                      name: My little workflow
                  name: Planned database migration
                  notification_message: Scheduled downtime for database migration
                  notify_channels:
                    - channel_id: C0ACTHQMHS8
                      channel_name: general
                      channel_type: public
                      is_private: false
                  notify_end_minutes_before: 5
                  notify_start_minutes_before: 15
                  reroute_on_end: false
                  resolve_on_end: false
                  show_in_sidebar: true
                  start_at: '2021-08-17T13:28:57.801578Z'
                  updated_at: '2021-08-17T13:28:57.801578Z'
              schema:
                $ref: '#/components/schemas/MaintenanceWindowsCreateResultV1'
          description: Created response.
components:
  schemas:
    MaintenanceWindowsCreatePayloadV1:
      example:
        alert_condition_groups:
          - conditions:
              - operation: one_of
                param_bindings:
                  - array_value:
                      - literal: SEV123
                        reference: incident.severity
                    value:
                      literal: SEV123
                      reference: incident.severity
                subject: incident.severity
        end_at: '2021-08-17T14:28:57.801578Z'
        escalation_targets:
          - escalation_paths:
              array_value:
                - literal: SEV123
                  reference: incident.severity
              value:
                literal: SEV123
                reference: incident.severity
            users:
              array_value:
                - literal: SEV123
                  reference: incident.severity
              value:
                literal: SEV123
                reference: incident.severity
        incident_id: 01FCNDV6P870EA6S7TK1DSYDG0
        lead:
          email: bob@example.com
          id: 01G0J1EXE7AXZ2C93K61WBPYEH
          slack_user_id: USER123
        name: Planned database migration
        notification_message: Scheduled downtime for database migration
        notify_channels:
          - channel_id: C0ACTHQMHS8
            channel_name: general
            channel_type: public
        notify_end_minutes_before: 5
        notify_start_minutes_before: 15
        reroute_on_end: false
        resolve_on_end: false
        show_in_sidebar: true
        start_at: '2021-08-17T13:28:57.801578Z'
      properties:
        alert_condition_groups:
          description: >-
            Condition groups that determine which alerts this maintenance window
            applies to
          example:
            - conditions:
                - operation: one_of
                  param_bindings:
                    - array_value:
                        - literal: SEV123
                          reference: incident.severity
                      value:
                        literal: SEV123
                        reference: incident.severity
                  subject: incident.severity
          items:
            $ref: '#/components/schemas/ConditionGroupPayloadV2'
          type: array
        end_at:
          description: When the maintenance window should end
          example: '2021-08-17T14:28:57.801578Z'
          format: date-time
          type: string
        escalation_targets:
          description: >-
            If set, alerts matching this window will be escalated to these
            targets
          example:
            - escalation_paths:
                array_value:
                  - literal: SEV123
                    reference: incident.severity
                value:
                  literal: SEV123
                  reference: incident.severity
              users:
                array_value:
                  - literal: SEV123
                    reference: incident.severity
                value:
                  literal: SEV123
                  reference: incident.severity
          items:
            $ref: '#/components/schemas/MaintenanceWindowEscalationTargetPayloadV1'
          type: array
        incident_id:
          description: >-
            If set, alerts matching this window will be automatically attached
            to this incident
          example: 01FCNDV6P870EA6S7TK1DSYDG0
          type: string
        lead:
          $ref: '#/components/schemas/UserReferencePayloadV2'
        name:
          description: Human readable name for the maintenance window
          example: Planned database migration
          type: string
        notification_message:
          description: >-
            Custom message included in notifications about this maintenance
            window
          example: Scheduled downtime for database migration
          type: string
        notify_channels:
          description: Channels to notify about the maintenance window starting and ending
          example:
            - channel_id: C0ACTHQMHS8
              channel_name: general
              channel_type: public
          items:
            $ref: '#/components/schemas/MaintenanceWindowNotifyChannelPayloadV1'
          type: array
        notify_end_minutes_before:
          description: >-
            Minutes before the end to send a notification to the configured
            channels
          example: 5
          format: int64
          type: integer
        notify_start_minutes_before:
          description: >-
            Minutes before the start to send a notification to the configured
            channels
          example: 15
          format: int64
          type: integer
        reroute_on_end:
          description: >-
            Whether to retrigger firing alerts through alert routing when the
            window ends
          example: false
          type: boolean
        resolve_on_end:
          description: >-
            Whether to automatically resolve all firing alerts that matched this
            window when it ends
          example: false
          type: boolean
        show_in_sidebar:
          description: >-
            Whether to show this maintenance window in the dashboard sidebar
            when active
          example: true
          type: boolean
        start_at:
          description: When the maintenance window should start
          example: '2021-08-17T13:28:57.801578Z'
          format: date-time
          type: string
      required:
        - name
        - lead
        - start_at
        - end_at
        - alert_condition_groups
        - show_in_sidebar
      type: object
    MaintenanceWindowsCreateResultV1:
      example:
        maintenance_window:
          alert_condition_groups:
            - conditions:
                - operation:
                    label: Lawrence Jones
                    value: 01FCQSP07Z74QMMYPDDGQB9FTG
                  param_bindings:
                    - array_value:
                        - label: Lawrence Jones
                          literal: SEV123
                          reference: incident.severity
                      value:
                        label: Lawrence Jones
                        literal: SEV123
                        reference: incident.severity
                  subject:
                    label: Incident Severity
                    reference: incident.severity
          archived_at: '2021-08-17T13:28:57.801578Z'
          created_at: '2021-08-17T13:28:57.801578Z'
          end_at: '2021-08-17T14:28:57.801578Z'
          escalation_targets:
            - escalation_paths:
                array_value:
                  - label: Lawrence Jones
                    literal: SEV123
                    reference: incident.severity
                value:
                  label: Lawrence Jones
                  literal: SEV123
                  reference: incident.severity
              users:
                array_value:
                  - label: Lawrence Jones
                    literal: SEV123
                    reference: incident.severity
                value:
                  label: Lawrence Jones
                  literal: SEV123
                  reference: incident.severity
          id: 01FCNDV6P870EA6S7TK1DSYDG0
          incident_id: 01FCNDV6P870EA6S7TK1DSYDG0
          lead:
            alert:
              id: 01GW2G3V0S59R238FAHPDS1R66
              title: '*errors.withMessage: PG::Error failed to connect'
            api_key:
              id: 01FCNDV6P870EA6S7TK1DSYDG0
              name: My test API key
            user:
              email: lisa@incident.io
              id: 01FCNDV6P870EA6S7TK1DSYDG0
              name: Lisa Karlin Curtis
              role: owner
              slack_user_id: U02AYNF2XJM
            workflow:
              id: 01FCNDV6P870EA6S7TK1DSYDG0
              name: My little workflow
          name: Planned database migration
          notification_message: Scheduled downtime for database migration
          notify_channels:
            - channel_id: C0ACTHQMHS8
              channel_name: general
              channel_type: public
              is_private: false
          notify_end_minutes_before: 5
          notify_start_minutes_before: 15
          reroute_on_end: false
          resolve_on_end: false
          show_in_sidebar: true
          start_at: '2021-08-17T13:28:57.801578Z'
          updated_at: '2021-08-17T13:28:57.801578Z'
      properties:
        maintenance_window:
          $ref: '#/components/schemas/MaintenanceWindowV1'
      required:
        - maintenance_window
      type: object
    ConditionGroupPayloadV2:
      example:
        conditions:
          - operation: one_of
            param_bindings:
              - array_value:
                  - literal: SEV123
                    reference: incident.severity
                value:
                  literal: SEV123
                  reference: incident.severity
            subject: incident.severity
      properties:
        conditions:
          description: >-
            All conditions in this list must be satisfied for the group to be
            satisfied
          example:
            - operation: one_of
              param_bindings:
                - array_value:
                    - literal: SEV123
                      reference: incident.severity
                  value:
                    literal: SEV123
                    reference: incident.severity
              subject: incident.severity
          items:
            $ref: '#/components/schemas/ConditionPayloadV2'
          type: array
      required:
        - conditions
      type: object
    MaintenanceWindowEscalationTargetPayloadV1:
      example:
        escalation_paths:
          array_value:
            - literal: SEV123
              reference: incident.severity
          value:
            literal: SEV123
            reference: incident.severity
        users:
          array_value:
            - literal: SEV123
              reference: incident.severity
          value:
            literal: SEV123
            reference: incident.severity
      properties:
        escalation_paths:
          $ref: '#/components/schemas/EngineParamBindingPayloadV2'
        users:
          $ref: '#/components/schemas/EngineParamBindingPayloadV2'
      type: object
    UserReferencePayloadV2:
      example:
        email: bob@example.com
        id: 01G0J1EXE7AXZ2C93K61WBPYEH
        slack_user_id: USER123
      properties:
        email:
          description: The user's email address, matching the email on their Slack account
          example: bob@example.com
          type: string
        id:
          description: The incident.io ID of a user
          example: 01G0J1EXE7AXZ2C93K61WBPYEH
          type: string
        slack_user_id:
          description: The ID of the user's Slack account.
          example: USER123
          type: string
      type: object
    MaintenanceWindowNotifyChannelPayloadV1:
      description: A channel to receive notifications about this maintenance window
      example:
        channel_id: C0ACTHQMHS8
        channel_name: general
        channel_type: public
      properties:
        channel_id:
          description: The external provider channel ID (e.g. Slack channel ID)
          example: C0ACTHQMHS8
          type: string
        channel_name:
          description: Human readable name of the channel
          example: general
          type: string
        channel_type:
          description: The type of channel (e.g. public, private)
          example: public
          type: string
      required:
        - channel_id
        - channel_type
      type: object
    MaintenanceWindowV1:
      properties:
        alert_condition_groups:
          description: >-
            Condition groups that determine which alerts this maintenance window
            applies to
          example:
            - conditions:
                - operation:
                    label: Lawrence Jones
                    value: 01FCQSP07Z74QMMYPDDGQB9FTG
                  param_bindings:
                    - array_value:
                        - label: Lawrence Jones
                          literal: SEV123
                          reference: incident.severity
                      value:
                        label: Lawrence Jones
                        literal: SEV123
                        reference: incident.severity
                  subject:
                    label: Incident Severity
                    reference: incident.severity
          items:
            $ref: '#/components/schemas/ConditionGroupV2'
          type: array
        archived_at:
          description: When this maintenance window was archived, if it has been
          example: '2021-08-17T13:28:57.801578Z'
          format: date-time
          type: string
        created_at:
          description: When this maintenance window was created
          example: '2021-08-17T13:28:57.801578Z'
          format: date-time
          type: string
        end_at:
          description: When the maintenance window ends
          example: '2021-08-17T14:28:57.801578Z'
          format: date-time
          type: string
        escalation_targets:
          description: >-
            If set, alerts matching this window will be escalated to these
            targets
          example:
            - escalation_paths:
                array_value:
                  - label: Lawrence Jones
                    literal: SEV123
                    reference: incident.severity
                value:
                  label: Lawrence Jones
                  literal: SEV123
                  reference: incident.severity
              users:
                array_value:
                  - label: Lawrence Jones
                    literal: SEV123
                    reference: incident.severity
                value:
                  label: Lawrence Jones
                  literal: SEV123
                  reference: incident.severity
          items:
            $ref: '#/components/schemas/MaintenanceWindowEscalationTargetV1'
          type: array
        id:
          description: Unique identifier for this maintenance window
          example: 01FCNDV6P870EA6S7TK1DSYDG0
          type: string
        incident_id:
          description: >-
            If set, alerts matching this window will be automatically attached
            to this incident
          example: 01FCNDV6P870EA6S7TK1DSYDG0
          type: string
        lead:
          $ref: '#/components/schemas/ActorV2'
        name:
          description: Human readable name for the maintenance window
          example: Planned database migration
          type: string
        notification_message:
          description: >-
            Custom message included in notifications about this maintenance
            window
          example: Scheduled downtime for database migration
          type: string
        notify_channels:
          description: Channels to notify about the maintenance window starting and ending
          example:
            - channel_id: C0ACTHQMHS8
              channel_name: general
              channel_type: public
              is_private: false
          items:
            $ref: '#/components/schemas/MaintenanceWindowNotifyChannelV1'
          type: array
        notify_end_minutes_before:
          description: >-
            Minutes before the end to send a notification to the configured
            channels
          example: 5
          format: int64
          type: integer
        notify_start_minutes_before:
          description: >-
            Minutes before the start to send a notification to the configured
            channels
          example: 15
          format: int64
          type: integer
        reroute_on_end:
          description: >-
            Whether to retrigger firing alerts through alert routing when the
            window ends
          example: false
          type: boolean
        resolve_on_end:
          description: >-
            Whether to automatically resolve all firing alerts that matched this
            window when it ends
          example: false
          type: boolean
        show_in_sidebar:
          description: >-
            Whether to show this maintenance window in the dashboard sidebar
            when active
          example: true
          type: boolean
        start_at:
          description: When the maintenance window starts
          example: '2021-08-17T13:28:57.801578Z'
          format: date-time
          type: string
        updated_at:
          description: When this maintenance window was last updated
          example: '2021-08-17T13:28:57.801578Z'
          format: date-time
          type: string
      required:
        - id
        - name
        - lead
        - start_at
        - end_at
        - alert_condition_groups
        - resolve_on_end
        - reroute_on_end
        - show_in_sidebar
        - created_at
        - updated_at
      type: object
    ConditionPayloadV2:
      example:
        operation: one_of
        param_bindings:
          - array_value:
              - literal: SEV123
                reference: incident.severity
            value:
              literal: SEV123
              reference: incident.severity
        subject: incident.severity
      properties:
        operation:
          description: The name of the operation on the subject
          example: one_of
          type: string
        param_bindings:
          description: List of parameter bindings
          example:
            - array_value:
                - literal: SEV123
                  reference: incident.severity
              value:
                literal: SEV123
                reference: incident.severity
          items:
            $ref: '#/components/schemas/EngineParamBindingPayloadV2'
          type: array
        subject:
          description: The reference of the subject in the trigger scope
          example: incident.severity
          type: string
      required:
        - subject
        - operation
        - param_bindings
      type: object
    EngineParamBindingPayloadV2:
      example:
        array_value:
          - literal: SEV123
            reference: incident.severity
        value:
          literal: SEV123
          reference: incident.severity
      properties:
        array_value:
          description: If set, this is the array value of the step parameter
          example:
            - literal: SEV123
              reference: incident.severity
          items:
            $ref: '#/components/schemas/EngineParamBindingValuePayloadV2'
          type: array
        value:
          $ref: '#/components/schemas/EngineParamBindingValuePayloadV2'
      type: object
    ConditionGroupV2:
      example:
        conditions:
          - operation:
              label: Lawrence Jones
              value: 01FCQSP07Z74QMMYPDDGQB9FTG
            param_bindings:
              - array_value:
                  - label: Lawrence Jones
                    literal: SEV123
                    reference: incident.severity
                value:
                  label: Lawrence Jones
                  literal: SEV123
                  reference: incident.severity
            subject:
              label: Incident Severity
              reference: incident.severity
      properties:
        conditions:
          description: >-
            All conditions in this list must be satisfied for the group to be
            satisfied
          example:
            - operation:
                label: Lawrence Jones
                value: 01FCQSP07Z74QMMYPDDGQB9FTG
              param_bindings:
                - array_value:
                    - label: Lawrence Jones
                      literal: SEV123
                      reference: incident.severity
                  value:
                    label: Lawrence Jones
                    literal: SEV123
                    reference: incident.severity
              subject:
                label: Incident Severity
                reference: incident.severity
          items:
            $ref: '#/components/schemas/ConditionV2'
          type: array
      required:
        - conditions
      type: object
    MaintenanceWindowEscalationTargetV1:
      example:
        escalation_paths:
          array_value:
            - label: Lawrence Jones
              literal: SEV123
              reference: incident.severity
          value:
            label: Lawrence Jones
            literal: SEV123
            reference: incident.severity
        users:
          array_value:
            - label: Lawrence Jones
              literal: SEV123
              reference: incident.severity
          value:
            label: Lawrence Jones
            literal: SEV123
            reference: incident.severity
      properties:
        escalation_paths:
          $ref: '#/components/schemas/EngineParamBindingV2'
        users:
          $ref: '#/components/schemas/EngineParamBindingV2'
      type: object
    ActorV2:
      example:
        alert:
          id: 01GW2G3V0S59R238FAHPDS1R66
          title: '*errors.withMessage: PG::Error failed to connect'
        api_key:
          id: 01FCNDV6P870EA6S7TK1DSYDG0
          name: My test API key
        user:
          email: lisa@incident.io
          id: 01FCNDV6P870EA6S7TK1DSYDG0
          name: Lisa Karlin Curtis
          role: owner
          slack_user_id: U02AYNF2XJM
        workflow:
          id: 01FCNDV6P870EA6S7TK1DSYDG0
          name: My little workflow
      properties:
        alert:
          $ref: '#/components/schemas/AlertActorV2'
        api_key:
          $ref: '#/components/schemas/APIKeyActorV2'
        user:
          $ref: '#/components/schemas/UserV2'
        workflow:
          $ref: '#/components/schemas/WorkflowActorV2'
      type: object
    MaintenanceWindowNotifyChannelV1:
      description: A channel that will receive notifications about this maintenance window
      example:
        channel_id: C0ACTHQMHS8
        channel_name: general
        channel_type: public
        is_private: false
      properties:
        channel_id:
          description: The external provider channel ID (e.g. Slack channel ID)
          example: C0ACTHQMHS8
          type: string
        channel_name:
          description: Human readable name of the channel
          example: general
          type: string
        channel_type:
          description: The type of channel (e.g. public, private)
          example: public
          type: string
        is_private:
          description: Whether the channel is private
          example: false
          type: boolean
      required:
        - channel_id
        - channel_type
      type: object
    EngineParamBindingValuePayloadV2:
      example:
        literal: SEV123
        reference: incident.severity
      properties:
        literal:
          description: If set, this is the literal value of the step parameter
          example: SEV123
          type: string
        reference:
          description: >-
            If set, this is the reference into the trigger scope that is the
            value of this parameter
          example: incident.severity
          type: string
      type: object
    ConditionV2:
      example:
        operation:
          label: Lawrence Jones
          value: 01FCQSP07Z74QMMYPDDGQB9FTG
        param_bindings:
          - array_value:
              - label: Lawrence Jones
                literal: SEV123
                reference: incident.severity
            value:
              label: Lawrence Jones
              literal: SEV123
              reference: incident.severity
        subject:
          label: Incident Severity
          reference: incident.severity
      properties:
        operation:
          $ref: '#/components/schemas/ConditionOperationV2'
        param_bindings:
          description: Bindings for the operation parameters
          example:
            - array_value:
                - label: Lawrence Jones
                  literal: SEV123
                  reference: incident.severity
              value:
                label: Lawrence Jones
                literal: SEV123
                reference: incident.severity
          items:
            $ref: '#/components/schemas/EngineParamBindingV2'
          type: array
        subject:
          $ref: '#/components/schemas/ConditionSubjectV2'
      required:
        - subject
        - operation
        - param_bindings
      type: object
    EngineParamBindingV2:
      example:
        array_value:
          - label: Lawrence Jones
            literal: SEV123
            reference: incident.severity
        value:
          label: Lawrence Jones
          literal: SEV123
          reference: incident.severity
      properties:
        array_value:
          description: If array_value is set, this helps render the values
          example:
            - label: Lawrence Jones
              literal: SEV123
              reference: incident.severity
          items:
            $ref: '#/components/schemas/EngineParamBindingValueV2'
          type: array
        value:
          $ref: '#/components/schemas/EngineParamBindingValueV2'
      type: object
    AlertActorV2:
      example:
        id: 01GW2G3V0S59R238FAHPDS1R66
        title: '*errors.withMessage: PG::Error failed to connect'
      properties:
        id:
          description: The ID of this alert
          example: 01GW2G3V0S59R238FAHPDS1R66
          type: string
        title:
          description: >-
            The title of the alert, parsed from the alert payload according to
            the alert source configuration
          example: '*errors.withMessage: PG::Error failed to connect'
          type: string
      required:
        - id
        - title
      type: object
    APIKeyActorV2:
      example:
        id: 01FCNDV6P870EA6S7TK1DSYDG0
        name: My test API key
      properties:
        id:
          description: Unique identifier for this API key
          example: 01FCNDV6P870EA6S7TK1DSYDG0
          type: string
        name:
          description: The name of the API key, for the user's reference
          example: My test API key
          type: string
      required:
        - id
        - name
      type: object
    UserV2:
      example:
        email: lisa@incident.io
        id: 01FCNDV6P870EA6S7TK1DSYDG0
        name: Lisa Karlin Curtis
        role: owner
        slack_user_id: U02AYNF2XJM
      properties:
        email:
          description: Email address of the user.
          example: lisa@incident.io
          type: string
        id:
          description: Unique identifier of the user
          example: 01FCNDV6P870EA6S7TK1DSYDG0
          type: string
        name:
          description: Name of the user
          example: Lisa Karlin Curtis
          type: string
        role:
          description: >-
            DEPRECATED: Role of the user as of March 9th 2023, this value is no
            longer updated.
          enum:
            - viewer
            - responder
            - administrator
            - owner
            - unset
          example: owner
          type: string
        slack_user_id:
          description: Slack ID of the user
          example: U02AYNF2XJM
          type: string
      required:
        - role
        - id
        - name
      type: object
    WorkflowActorV2:
      example:
        id: 01FCNDV6P870EA6S7TK1DSYDG0
        name: My little workflow
      properties:
        id:
          description: Unique identifier for the workflow
          example: 01FCNDV6P870EA6S7TK1DSYDG0
          type: string
        name:
          description: Name provided by the user when creating the workflow
          example: My little workflow
          type: string
      required:
        - id
        - name
      type: object
    ConditionOperationV2:
      example:
        label: Lawrence Jones
        value: 01FCQSP07Z74QMMYPDDGQB9FTG
      properties:
        label:
          description: Human readable label to be displayed for user to select
          example: Lawrence Jones
          type: string
        value:
          description: Unique identifier for this option
          example: 01FCQSP07Z74QMMYPDDGQB9FTG
          type: string
      required:
        - label
        - value
      type: object
    ConditionSubjectV2:
      example:
        label: Incident Severity
        reference: incident.severity
      properties:
        label:
          description: Human readable identifier for the subject
          example: Incident Severity
          type: string
        reference:
          description: Reference into the scope for the value of the subject
          example: incident.severity
          type: string
      required:
        - label
        - reference
      type: object
    EngineParamBindingValueV2:
      example:
        label: Lawrence Jones
        literal: SEV123
        reference: incident.severity
      properties:
        label:
          description: Human readable label to be displayed for user to select
          example: Lawrence Jones
          type: string
        literal:
          description: If set, this is the literal value of the step parameter
          example: SEV123
          type: string
        reference:
          description: >-
            If set, this is the reference into the trigger scope that is the
            value of this parameter
          example: incident.severity
          type: string
      required:
        - label
      type: object
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: API key from your incident.io dashboard (Settings → API keys)

````