> ## 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.

# Update

> Updates a workflow



## OpenAPI

````yaml /openapi/tags/workflows-v2.json put /v2/workflows/{id}
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 workflows.


      Workflows allow you to automate certain actions and behaviors based on
      specific triggers.
    name: Workflows V2
paths:
  /v2/workflows/{id}:
    put:
      tags:
        - Workflows V2
      summary: Update
      description: Updates a workflow
      operationId: Workflows V2_UpdateWorkflow
      parameters:
        - description: ID of the workflow to update
          examples:
            default:
              summary: default
              value: 01FCNDV6P870EA6S7TK1DSYDG0
          in: path
          name: id
          required: true
          schema:
            description: ID of the workflow to update
            example: 01FCNDV6P870EA6S7TK1DSYDG0
            type: string
      requestBody:
        content:
          application/json:
            example:
              annotations:
                incident.io/terraform/version: 3.0.0
              condition_groups:
                - conditions:
                    - operation: one_of
                      param_bindings:
                        - array_value:
                            - literal: SEV123
                              reference: incident.severity
                          value:
                            literal: SEV123
                            reference: incident.severity
                      subject: incident.severity
              continue_on_step_error: true
              delay:
                conditions_apply_over_delay: false
                for_seconds: 60
              expressions:
                - else_branch:
                    result:
                      array_value:
                        - literal: SEV123
                          reference: incident.severity
                      value:
                        literal: SEV123
                        reference: incident.severity
                  label: Team Slack channel
                  operations:
                    - branches:
                        branches:
                          - condition_groups:
                              - conditions:
                                  - operation: one_of
                                    param_bindings:
                                      - array_value:
                                          - literal: SEV123
                                            reference: incident.severity
                                        value:
                                          literal: SEV123
                                          reference: incident.severity
                                    subject: incident.severity
                            result:
                              array_value:
                                - literal: SEV123
                                  reference: incident.severity
                              value:
                                literal: SEV123
                                reference: incident.severity
                        returns:
                          array: true
                          type: IncidentStatus
                      concatenate:
                        reference: catalog_attribute["01FCNDV6P870EA6S7TK1DSYD5H"]
                      filter:
                        condition_groups:
                          - conditions:
                              - operation: one_of
                                param_bindings:
                                  - array_value:
                                      - literal: SEV123
                                        reference: incident.severity
                                    value:
                                      literal: SEV123
                                      reference: incident.severity
                                subject: incident.severity
                      navigate:
                        reference: catalog_attribute["01FCNDV6P870EA6S7TK1DSYD5H"]
                      operation_type: navigate
                      parse:
                        returns:
                          array: true
                          type: IncidentStatus
                        source: metadata.annotations["github.com/repo"]
                  reference: abc123
                  root_reference: incident.status
              folder: My folder 01
              include_private_escalations: true
              include_private_incidents: true
              name: My little workflow
              once_for:
                - incident.url
              runs_on_incident_modes:
                - standard
                - test
                - retrospective
              runs_on_incidents: newly_created
              shortform: page-the-ceo
              skip_step_upgrades: false
              state: active
              steps:
                - for_each: abc123
                  id: abc123
                  name: pagerduty.escalate
                  param_bindings:
                    - array_value:
                        - literal: SEV123
                          reference: incident.severity
                      value:
                        literal: SEV123
                        reference: incident.severity
            schema:
              $ref: '#/components/schemas/WorkflowsUpdateWorkflowPayloadV2'
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                management_meta:
                  annotations:
                    incident.io/terraform/version: 3.0.0
                  managed_by: dashboard
                  source_url: https://github.com/my-company/infrastructure
                workflow:
                  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
                  continue_on_step_error: true
                  delay:
                    conditions_apply_over_delay: false
                    for_seconds: 60
                  expressions:
                    - else_branch:
                        result:
                          array_value:
                            - label: Lawrence Jones
                              literal: SEV123
                              reference: incident.severity
                          value:
                            label: Lawrence Jones
                            literal: SEV123
                            reference: incident.severity
                      label: Team Slack channel
                      operations:
                        - branches:
                            branches:
                              - 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
                                result:
                                  array_value:
                                    - label: Lawrence Jones
                                      literal: SEV123
                                      reference: incident.severity
                                  value:
                                    label: Lawrence Jones
                                    literal: SEV123
                                    reference: incident.severity
                            returns:
                              array: true
                              type: IncidentStatus
                          filter:
                            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
                          navigate:
                            reference: '1235'
                            reference_label: Teams
                          operation_type: navigate
                          parse:
                            returns:
                              array: true
                              type: IncidentStatus
                            source: metadata.annotations["github.com/repo"]
                          returns:
                            array: true
                            type: IncidentStatus
                      reference: abc123
                      returns:
                        array: true
                        type: IncidentStatus
                      root_reference: incident.status
                  folder: My folder 01
                  id: 01FCNDV6P870EA6S7TK1DSYDG0
                  include_private_escalations: true
                  include_private_incidents: true
                  name: My little workflow
                  once_for:
                    - array: false
                      key: incident.custom_field["01FCNDV6P870EA6S7TK1DSYDG0"]
                      label: Incident -> Affected Team
                      type: IncidentSeverity
                  runs_from: '2021-08-17T13:28:57.801578Z'
                  runs_on_incident_modes:
                    - standard
                    - test
                    - retrospective
                  runs_on_incidents: newly_created
                  shortform: page-the-ceo
                  state: active
                  steps:
                    - for_each: abc123
                      id: abc123
                      label: PagerDuty Escalate
                      name: pagerduty.escalate
                      param_bindings:
                        - array_value:
                            - label: Lawrence Jones
                              literal: SEV123
                              reference: incident.severity
                          value:
                            label: Lawrence Jones
                            literal: SEV123
                            reference: incident.severity
                  trigger:
                    label: Incident Updated
                    name: incident.updated
                  version: 3
              schema:
                $ref: '#/components/schemas/WorkflowsUpdateWorkflowResultV2'
          description: OK response.
components:
  schemas:
    WorkflowsUpdateWorkflowPayloadV2:
      example:
        annotations:
          incident.io/terraform/version: 3.0.0
        condition_groups:
          - conditions:
              - operation: one_of
                param_bindings:
                  - array_value:
                      - literal: SEV123
                        reference: incident.severity
                    value:
                      literal: SEV123
                      reference: incident.severity
                subject: incident.severity
        continue_on_step_error: true
        delay:
          conditions_apply_over_delay: false
          for_seconds: 60
        expressions:
          - else_branch:
              result:
                array_value:
                  - literal: SEV123
                    reference: incident.severity
                value:
                  literal: SEV123
                  reference: incident.severity
            label: Team Slack channel
            operations:
              - branches:
                  branches:
                    - condition_groups:
                        - conditions:
                            - operation: one_of
                              param_bindings:
                                - array_value:
                                    - literal: SEV123
                                      reference: incident.severity
                                  value:
                                    literal: SEV123
                                    reference: incident.severity
                              subject: incident.severity
                      result:
                        array_value:
                          - literal: SEV123
                            reference: incident.severity
                        value:
                          literal: SEV123
                          reference: incident.severity
                  returns:
                    array: true
                    type: IncidentStatus
                concatenate:
                  reference: catalog_attribute["01FCNDV6P870EA6S7TK1DSYD5H"]
                filter:
                  condition_groups:
                    - conditions:
                        - operation: one_of
                          param_bindings:
                            - array_value:
                                - literal: SEV123
                                  reference: incident.severity
                              value:
                                literal: SEV123
                                reference: incident.severity
                          subject: incident.severity
                navigate:
                  reference: catalog_attribute["01FCNDV6P870EA6S7TK1DSYD5H"]
                operation_type: navigate
                parse:
                  returns:
                    array: true
                    type: IncidentStatus
                  source: metadata.annotations["github.com/repo"]
            reference: abc123
            root_reference: incident.status
        folder: My folder 01
        include_private_escalations: true
        include_private_incidents: true
        name: My little workflow
        once_for:
          - incident.url
        runs_on_incident_modes:
          - standard
          - test
          - retrospective
        runs_on_incidents: newly_created
        shortform: page-the-ceo
        skip_step_upgrades: false
        state: active
        steps:
          - for_each: abc123
            id: abc123
            name: pagerduty.escalate
            param_bindings:
              - array_value:
                  - literal: SEV123
                    reference: incident.severity
                value:
                  literal: SEV123
                  reference: incident.severity
      properties:
        annotations:
          additionalProperties:
            example: abc123
            type: string
          description: Annotations that track metadata about this resource
          example:
            incident.io/terraform/version: 3.0.0
          type: object
        condition_groups:
          description: Conditions that apply to the workflow trigger
          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
        continue_on_step_error:
          description: Whether to continue executing the workflow if a step fails
          example: true
          type: boolean
        delay:
          $ref: '#/components/schemas/WorkflowDelayV2'
        expressions:
          description: The expressions to use in the workflow
          example:
            - else_branch:
                result:
                  array_value:
                    - literal: SEV123
                      reference: incident.severity
                  value:
                    literal: SEV123
                    reference: incident.severity
              label: Team Slack channel
              operations:
                - branches:
                    branches:
                      - condition_groups:
                          - conditions:
                              - operation: one_of
                                param_bindings:
                                  - array_value:
                                      - literal: SEV123
                                        reference: incident.severity
                                    value:
                                      literal: SEV123
                                      reference: incident.severity
                                subject: incident.severity
                        result:
                          array_value:
                            - literal: SEV123
                              reference: incident.severity
                          value:
                            literal: SEV123
                            reference: incident.severity
                    returns:
                      array: true
                      type: IncidentStatus
                  concatenate:
                    reference: catalog_attribute["01FCNDV6P870EA6S7TK1DSYD5H"]
                  filter:
                    condition_groups:
                      - conditions:
                          - operation: one_of
                            param_bindings:
                              - array_value:
                                  - literal: SEV123
                                    reference: incident.severity
                                value:
                                  literal: SEV123
                                  reference: incident.severity
                            subject: incident.severity
                  navigate:
                    reference: catalog_attribute["01FCNDV6P870EA6S7TK1DSYD5H"]
                  operation_type: navigate
                  parse:
                    returns:
                      array: true
                      type: IncidentStatus
                    source: metadata.annotations["github.com/repo"]
              reference: abc123
              root_reference: incident.status
          items:
            $ref: '#/components/schemas/ExpressionPayloadV2'
          type: array
        folder:
          description: Folder to display the workflow in
          example: My folder 01
          type: string
        include_private_escalations:
          description: Whether to include private escalations
          example: true
          type: boolean
        include_private_incidents:
          description: Whether to include private incidents
          example: true
          type: boolean
        name:
          description: Name provided by the user when creating the workflow
          example: My little workflow
          type: string
        once_for:
          description: This workflow will run 'once for' a list of references
          example:
            - incident.url
          items:
            example: abc123
            type: string
          type: array
        runs_on_incident_modes:
          description: >-
            Which incident modes should this workflow run on? By default,
            workflows only run on standard incidents, but can also be configured
            to run on test and retrospective incidents.
          example:
            - standard
            - test
            - retrospective
          items:
            enum:
              - standard
              - test
              - retrospective
            example: standard
            type: string
          type: array
        runs_on_incidents:
          description: Which incidents should the workflow be applied to?
          enum:
            - newly_created
            - newly_created_and_active
          example: newly_created
          type: string
        shortform:
          description: >-
            The shortform used to trigger this workflow (only applicable for
            manual triggers)
          example: page-the-ceo
          type: string
        skip_step_upgrades:
          description: >-
            Skips workflow step upgrades, when the parameters for an existing
            workflow step change
          example: false
          type: boolean
        state:
          description: What state this workflow is in
          enum:
            - active
            - disabled
            - draft
            - error
          example: active
          type: string
        steps:
          description: Steps that are executed as part of the workflow
          example:
            - for_each: abc123
              id: abc123
              name: pagerduty.escalate
              param_bindings:
                - array_value:
                    - literal: SEV123
                      reference: incident.severity
                  value:
                    literal: SEV123
                    reference: incident.severity
          items:
            $ref: '#/components/schemas/StepConfigPayloadV2'
          type: array
      required:
        - name
        - once_for
        - condition_groups
        - steps
        - expressions
        - include_private_incidents
        - runs_on_incident_modes
        - continue_on_step_error
        - runs_on_incidents
      type: object
    WorkflowsUpdateWorkflowResultV2:
      example:
        management_meta:
          annotations:
            incident.io/terraform/version: 3.0.0
          managed_by: dashboard
          source_url: https://github.com/my-company/infrastructure
        workflow:
          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
          continue_on_step_error: true
          delay:
            conditions_apply_over_delay: false
            for_seconds: 60
          expressions:
            - else_branch:
                result:
                  array_value:
                    - label: Lawrence Jones
                      literal: SEV123
                      reference: incident.severity
                  value:
                    label: Lawrence Jones
                    literal: SEV123
                    reference: incident.severity
              label: Team Slack channel
              operations:
                - branches:
                    branches:
                      - 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
                        result:
                          array_value:
                            - label: Lawrence Jones
                              literal: SEV123
                              reference: incident.severity
                          value:
                            label: Lawrence Jones
                            literal: SEV123
                            reference: incident.severity
                    returns:
                      array: true
                      type: IncidentStatus
                  filter:
                    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
                  navigate:
                    reference: '1235'
                    reference_label: Teams
                  operation_type: navigate
                  parse:
                    returns:
                      array: true
                      type: IncidentStatus
                    source: metadata.annotations["github.com/repo"]
                  returns:
                    array: true
                    type: IncidentStatus
              reference: abc123
              returns:
                array: true
                type: IncidentStatus
              root_reference: incident.status
          folder: My folder 01
          id: 01FCNDV6P870EA6S7TK1DSYDG0
          include_private_escalations: true
          include_private_incidents: true
          name: My little workflow
          once_for:
            - array: false
              key: incident.custom_field["01FCNDV6P870EA6S7TK1DSYDG0"]
              label: Incident -> Affected Team
              type: IncidentSeverity
          runs_from: '2021-08-17T13:28:57.801578Z'
          runs_on_incident_modes:
            - standard
            - test
            - retrospective
          runs_on_incidents: newly_created
          shortform: page-the-ceo
          state: active
          steps:
            - for_each: abc123
              id: abc123
              label: PagerDuty Escalate
              name: pagerduty.escalate
              param_bindings:
                - array_value:
                    - label: Lawrence Jones
                      literal: SEV123
                      reference: incident.severity
                  value:
                    label: Lawrence Jones
                    literal: SEV123
                    reference: incident.severity
          trigger:
            label: Incident Updated
            name: incident.updated
          version: 3
      properties:
        management_meta:
          $ref: '#/components/schemas/ManagementMetaV2'
        workflow:
          $ref: '#/components/schemas/WorkflowV2'
      required:
        - workflow
        - management_meta
      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
    WorkflowDelayV2:
      example:
        conditions_apply_over_delay: false
        for_seconds: 60
      properties:
        conditions_apply_over_delay:
          description: >-
            If this workflow is delayed, whether the conditions should be
            rechecked between trigger firing and execution
          example: false
          type: boolean
        for_seconds:
          description: Delay in seconds between trigger firing and running the workflow
          example: 60
          format: int64
          minimum: 0
          type: integer
      required:
        - for_seconds
        - conditions_apply_over_delay
      type: object
    ExpressionPayloadV2:
      example:
        else_branch:
          result:
            array_value:
              - literal: SEV123
                reference: incident.severity
            value:
              literal: SEV123
              reference: incident.severity
        label: Team Slack channel
        operations:
          - branches:
              branches:
                - condition_groups:
                    - conditions:
                        - operation: one_of
                          param_bindings:
                            - array_value:
                                - literal: SEV123
                                  reference: incident.severity
                              value:
                                literal: SEV123
                                reference: incident.severity
                          subject: incident.severity
                  result:
                    array_value:
                      - literal: SEV123
                        reference: incident.severity
                    value:
                      literal: SEV123
                      reference: incident.severity
              returns:
                array: true
                type: IncidentStatus
            concatenate:
              reference: catalog_attribute["01FCNDV6P870EA6S7TK1DSYD5H"]
            filter:
              condition_groups:
                - conditions:
                    - operation: one_of
                      param_bindings:
                        - array_value:
                            - literal: SEV123
                              reference: incident.severity
                          value:
                            literal: SEV123
                            reference: incident.severity
                      subject: incident.severity
            navigate:
              reference: catalog_attribute["01FCNDV6P870EA6S7TK1DSYD5H"]
            operation_type: navigate
            parse:
              returns:
                array: true
                type: IncidentStatus
              source: metadata.annotations["github.com/repo"]
        reference: abc123
        root_reference: incident.status
      properties:
        else_branch:
          $ref: '#/components/schemas/ExpressionElseBranchPayloadV2'
        label:
          description: The human readable label of the expression
          example: Team Slack channel
          type: string
        operations:
          example:
            - branches:
                branches:
                  - condition_groups:
                      - conditions:
                          - operation: one_of
                            param_bindings:
                              - array_value:
                                  - literal: SEV123
                                    reference: incident.severity
                                value:
                                  literal: SEV123
                                  reference: incident.severity
                            subject: incident.severity
                    result:
                      array_value:
                        - literal: SEV123
                          reference: incident.severity
                      value:
                        literal: SEV123
                        reference: incident.severity
                returns:
                  array: true
                  type: IncidentStatus
              concatenate:
                reference: catalog_attribute["01FCNDV6P870EA6S7TK1DSYD5H"]
              filter:
                condition_groups:
                  - conditions:
                      - operation: one_of
                        param_bindings:
                          - array_value:
                              - literal: SEV123
                                reference: incident.severity
                            value:
                              literal: SEV123
                              reference: incident.severity
                        subject: incident.severity
              navigate:
                reference: catalog_attribute["01FCNDV6P870EA6S7TK1DSYD5H"]
              operation_type: navigate
              parse:
                returns:
                  array: true
                  type: IncidentStatus
                source: metadata.annotations["github.com/repo"]
          items:
            $ref: '#/components/schemas/ExpressionOperationPayloadV2'
          type: array
        reference:
          description: A short ID that can be used to reference the expression
          example: abc123
          type: string
        root_reference:
          description: >-
            The root reference for this expression (i.e. where the expression
            starts)
          example: incident.status
          type: string
      required:
        - label
        - reference
        - root_reference
        - operations
      type: object
    StepConfigPayloadV2:
      example:
        for_each: abc123
        id: abc123
        name: pagerduty.escalate
        param_bindings:
          - array_value:
              - literal: SEV123
                reference: incident.severity
            value:
              literal: SEV123
              reference: incident.severity
      properties:
        for_each:
          description: >-
            Reference to an expression that returns resources to run this step
            over
          example: abc123
          type: string
        id:
          description: Unique ID of this step in a workflow
          example: abc123
          type: string
        name:
          description: Unique name of the step in the engine
          example: pagerduty.escalate
          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
      required:
        - id
        - name
        - param_bindings
      type: object
    ManagementMetaV2:
      example:
        annotations:
          incident.io/terraform/version: 3.0.0
        managed_by: dashboard
        source_url: https://github.com/my-company/infrastructure
      properties:
        annotations:
          additionalProperties:
            example: abc123
            type: string
          description: Annotations that track metadata about this resource
          example:
            incident.io/terraform/version: 3.0.0
          type: object
        managed_by:
          description: How is this resource managed
          enum:
            - dashboard
            - terraform
            - external
          example: dashboard
          type: string
        source_url:
          description: >-
            The url of the external repository where this resource is managed
            (if there is one)
          example: https://github.com/my-company/infrastructure
          type: string
      required:
        - annotations
        - managed_by
      type: object
    WorkflowV2:
      properties:
        condition_groups:
          description: Conditions that apply to the workflow trigger
          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
        continue_on_step_error:
          description: Whether to continue executing the workflow if a step fails
          example: true
          type: boolean
        delay:
          $ref: '#/components/schemas/WorkflowDelayV2'
        expressions:
          description: Expressions that make variables available in the scope
          example:
            - else_branch:
                result:
                  array_value:
                    - label: Lawrence Jones
                      literal: SEV123
                      reference: incident.severity
                  value:
                    label: Lawrence Jones
                    literal: SEV123
                    reference: incident.severity
              label: Team Slack channel
              operations:
                - branches:
                    branches:
                      - 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
                        result:
                          array_value:
                            - label: Lawrence Jones
                              literal: SEV123
                              reference: incident.severity
                          value:
                            label: Lawrence Jones
                            literal: SEV123
                            reference: incident.severity
                    returns:
                      array: true
                      type: IncidentStatus
                  filter:
                    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
                  navigate:
                    reference: '1235'
                    reference_label: Teams
                  operation_type: navigate
                  parse:
                    returns:
                      array: true
                      type: IncidentStatus
                    source: metadata.annotations["github.com/repo"]
                  returns:
                    array: true
                    type: IncidentStatus
              reference: abc123
              returns:
                array: true
                type: IncidentStatus
              root_reference: incident.status
          items:
            $ref: '#/components/schemas/ExpressionV2'
          type: array
        folder:
          description: Folder to display the workflow in
          example: My folder 01
          type: string
        id:
          description: Unique identifier for the workflow
          example: 01FCNDV6P870EA6S7TK1DSYDG0
          type: string
        include_private_escalations:
          description: Whether to include private escalations
          example: true
          type: boolean
        include_private_incidents:
          description: Whether to include private incidents
          example: true
          type: boolean
        name:
          description: Name provided by the user when creating the workflow
          example: My little workflow
          type: string
        once_for:
          description: This workflow will run 'once for' a list of references
          example:
            - array: false
              key: incident.custom_field["01FCNDV6P870EA6S7TK1DSYDG0"]
              label: Incident -> Affected Team
              type: IncidentSeverity
          items:
            $ref: '#/components/schemas/EngineReferenceV2'
          type: array
        runs_from:
          description: The time from which this workflow will run on incidents
          example: '2021-08-17T13:28:57.801578Z'
          format: date-time
          type: string
        runs_on_incident_modes:
          description: >-
            Which incident modes should this workflow run on? By default,
            workflows only run on standard incidents, but can also be configured
            to run on test and retrospective incidents.
          example:
            - standard
            - test
            - retrospective
          items:
            description: Incident mode that workflows can run on
            enum:
              - standard
              - test
              - retrospective
            example: standard
            type: string
            x-public-api-version: v2
          type: array
        runs_on_incidents:
          description: Which incidents should the workflow be applied to?
          enum:
            - newly_created
            - newly_created_and_active
          example: newly_created
          type: string
        shortform:
          description: >-
            The shortform used to trigger this workflow (only applicable for
            manual triggers)
          example: page-the-ceo
          type: string
        state:
          description: What state this workflow is in
          enum:
            - active
            - disabled
            - draft
            - error
          example: active
          type: string
        steps:
          description: Steps that are executed as part of the workflow
          example:
            - for_each: abc123
              id: abc123
              label: PagerDuty Escalate
              name: pagerduty.escalate
              param_bindings:
                - array_value:
                    - label: Lawrence Jones
                      literal: SEV123
                      reference: incident.severity
                  value:
                    label: Lawrence Jones
                    literal: SEV123
                    reference: incident.severity
          items:
            $ref: '#/components/schemas/StepConfigV2'
          type: array
        trigger:
          $ref: '#/components/schemas/TriggerSlimV2'
        version:
          description: Revision of the workflow, uniquely identifying it's version
          example: 3
          format: int64
          type: integer
      required:
        - id
        - name
        - trigger
        - once_for
        - version
        - expressions
        - condition_groups
        - steps
        - include_private_incidents
        - include_private_escalations
        - runs_on_incident_modes
        - continue_on_step_error
        - runs_on_incidents
        - state
      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
    ExpressionElseBranchPayloadV2:
      example:
        result:
          array_value:
            - literal: SEV123
              reference: incident.severity
          value:
            literal: SEV123
            reference: incident.severity
      properties:
        result:
          $ref: '#/components/schemas/EngineParamBindingPayloadV2'
      required:
        - result
      type: object
    ExpressionOperationPayloadV2:
      example:
        branches:
          branches:
            - condition_groups:
                - conditions:
                    - operation: one_of
                      param_bindings:
                        - array_value:
                            - literal: SEV123
                              reference: incident.severity
                          value:
                            literal: SEV123
                            reference: incident.severity
                      subject: incident.severity
              result:
                array_value:
                  - literal: SEV123
                    reference: incident.severity
                value:
                  literal: SEV123
                  reference: incident.severity
          returns:
            array: true
            type: IncidentStatus
        concatenate:
          reference: catalog_attribute["01FCNDV6P870EA6S7TK1DSYD5H"]
        filter:
          condition_groups:
            - conditions:
                - operation: one_of
                  param_bindings:
                    - array_value:
                        - literal: SEV123
                          reference: incident.severity
                      value:
                        literal: SEV123
                        reference: incident.severity
                  subject: incident.severity
        navigate:
          reference: catalog_attribute["01FCNDV6P870EA6S7TK1DSYD5H"]
        operation_type: navigate
        parse:
          returns:
            array: true
            type: IncidentStatus
          source: metadata.annotations["github.com/repo"]
      properties:
        branches:
          $ref: '#/components/schemas/ExpressionBranchesOptsPayloadV2'
        concatenate:
          $ref: '#/components/schemas/ExpressionConcatenateOptsPayloadV2'
        filter:
          $ref: '#/components/schemas/ExpressionFilterOptsPayloadV2'
        navigate:
          $ref: '#/components/schemas/ExpressionNavigateOptsPayloadV2'
        operation_type:
          description: The type of the operation
          enum:
            - navigate
            - filter
            - concatenate
            - count
            - min
            - max
            - sum
            - random
            - first
            - parse
            - branches
          example: navigate
          type: string
        parse:
          $ref: '#/components/schemas/ExpressionParseOptsPayloadV2'
      required:
        - operation_type
      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
    ExpressionV2:
      example:
        else_branch:
          result:
            array_value:
              - label: Lawrence Jones
                literal: SEV123
                reference: incident.severity
            value:
              label: Lawrence Jones
              literal: SEV123
              reference: incident.severity
        label: Team Slack channel
        operations:
          - branches:
              branches:
                - 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
                  result:
                    array_value:
                      - label: Lawrence Jones
                        literal: SEV123
                        reference: incident.severity
                    value:
                      label: Lawrence Jones
                      literal: SEV123
                      reference: incident.severity
              returns:
                array: true
                type: IncidentStatus
            filter:
              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
            navigate:
              reference: '1235'
              reference_label: Teams
            operation_type: navigate
            parse:
              returns:
                array: true
                type: IncidentStatus
              source: metadata.annotations["github.com/repo"]
            returns:
              array: true
              type: IncidentStatus
        reference: abc123
        returns:
          array: true
          type: IncidentStatus
        root_reference: incident.status
      properties:
        else_branch:
          $ref: '#/components/schemas/ExpressionElseBranchV2'
        label:
          description: The human readable label of the expression
          example: Team Slack channel
          type: string
        operations:
          example:
            - branches:
                branches:
                  - 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
                    result:
                      array_value:
                        - label: Lawrence Jones
                          literal: SEV123
                          reference: incident.severity
                      value:
                        label: Lawrence Jones
                        literal: SEV123
                        reference: incident.severity
                returns:
                  array: true
                  type: IncidentStatus
              filter:
                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
              navigate:
                reference: '1235'
                reference_label: Teams
              operation_type: navigate
              parse:
                returns:
                  array: true
                  type: IncidentStatus
                source: metadata.annotations["github.com/repo"]
              returns:
                array: true
                type: IncidentStatus
          items:
            $ref: '#/components/schemas/ExpressionOperationV2'
          type: array
        reference:
          description: A short ID that can be used to reference the expression
          example: abc123
          type: string
        returns:
          $ref: '#/components/schemas/ReturnsMetaV2'
        root_reference:
          description: >-
            The root reference for this expression (i.e. where the expression
            starts)
          example: incident.status
          type: string
      required:
        - label
        - reference
        - returns
        - root_reference
        - operations
      type: object
    EngineReferenceV2:
      example:
        array: false
        key: incident.custom_field["01FCNDV6P870EA6S7TK1DSYDG0"]
        label: Incident -> Affected Team
        type: IncidentSeverity
      properties:
        array:
          description: If true, the reference can refer to 0 to many items
          example: false
          type: boolean
        key:
          description: Unique identifier of field will set
          example: incident.custom_field["01FCNDV6P870EA6S7TK1DSYDG0"]
          type: string
        label:
          description: Human readable label for the field (with context)
          example: Incident -> Affected Team
          type: string
        type:
          description: The type of this resource in the engine
          example: IncidentSeverity
          type: string
      required:
        - key
        - label
        - type
        - array
      type: object
    StepConfigV2:
      example:
        for_each: abc123
        id: abc123
        label: PagerDuty Escalate
        name: pagerduty.escalate
        param_bindings:
          - array_value:
              - label: Lawrence Jones
                literal: SEV123
                reference: incident.severity
            value:
              label: Lawrence Jones
              literal: SEV123
              reference: incident.severity
      properties:
        for_each:
          description: >-
            Reference to an expression that returns resources to run this step
            over
          example: abc123
          type: string
        id:
          description: Unique ID of this step in a workflow
          example: abc123
          type: string
        label:
          description: Human readable identifier for this step
          example: PagerDuty Escalate
          type: string
        name:
          description: Unique name of the step in the engine
          example: pagerduty.escalate
          type: string
        param_bindings:
          description: Bindings for the step 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
      required:
        - id
        - name
        - label
        - param_bindings
      type: object
    TriggerSlimV2:
      example:
        label: Incident Updated
        name: incident.updated
      properties:
        label:
          description: Human readable identifier for this trigger
          example: Incident Updated
          type: string
        name:
          description: Unique name of the trigger
          example: incident.updated
          type: string
      required:
        - name
        - label
      type: object
    ExpressionBranchesOptsPayloadV2:
      example:
        branches:
          - condition_groups:
              - conditions:
                  - operation: one_of
                    param_bindings:
                      - array_value:
                          - literal: SEV123
                            reference: incident.severity
                        value:
                          literal: SEV123
                          reference: incident.severity
                    subject: incident.severity
            result:
              array_value:
                - literal: SEV123
                  reference: incident.severity
              value:
                literal: SEV123
                reference: incident.severity
        returns:
          array: true
          type: IncidentStatus
      properties:
        branches:
          description: The branches to apply for this operation
          example:
            - condition_groups:
                - conditions:
                    - operation: one_of
                      param_bindings:
                        - array_value:
                            - literal: SEV123
                              reference: incident.severity
                          value:
                            literal: SEV123
                            reference: incident.severity
                      subject: incident.severity
              result:
                array_value:
                  - literal: SEV123
                    reference: incident.severity
                value:
                  literal: SEV123
                  reference: incident.severity
          items:
            $ref: '#/components/schemas/ExpressionBranchPayloadV2'
          type: array
        returns:
          $ref: '#/components/schemas/ReturnsMetaV2'
      required:
        - branches
        - returns
      type: object
    ExpressionConcatenateOptsPayloadV2:
      example:
        reference: catalog_attribute["01FCNDV6P870EA6S7TK1DSYD5H"]
      properties:
        reference:
          description: The reference that you want to concatenate with
          example: catalog_attribute["01FCNDV6P870EA6S7TK1DSYD5H"]
          type: string
      required:
        - reference
      type: object
    ExpressionFilterOptsPayloadV2:
      example:
        condition_groups:
          - conditions:
              - operation: one_of
                param_bindings:
                  - array_value:
                      - literal: SEV123
                        reference: incident.severity
                    value:
                      literal: SEV123
                      reference: incident.severity
                subject: incident.severity
      properties:
        condition_groups:
          description: >-
            The condition groups to apply in this filter. Only one group needs
            to be satisfied for the filter to pass.
          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
      required:
        - condition_groups
      type: object
    ExpressionNavigateOptsPayloadV2:
      example:
        reference: catalog_attribute["01FCNDV6P870EA6S7TK1DSYD5H"]
      properties:
        reference:
          description: The reference that you want to navigate to
          example: catalog_attribute["01FCNDV6P870EA6S7TK1DSYD5H"]
          type: string
      required:
        - reference
      type: object
    ExpressionParseOptsPayloadV2:
      example:
        returns:
          array: true
          type: IncidentStatus
        source: metadata.annotations["github.com/repo"]
      properties:
        returns:
          $ref: '#/components/schemas/ReturnsMetaV2'
        source:
          description: Source expression that is evaluated to a result
          example: metadata.annotations["github.com/repo"]
          type: string
      required:
        - source
        - returns
      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
    ExpressionElseBranchV2:
      example:
        result:
          array_value:
            - label: Lawrence Jones
              literal: SEV123
              reference: incident.severity
          value:
            label: Lawrence Jones
            literal: SEV123
            reference: incident.severity
      properties:
        result:
          $ref: '#/components/schemas/EngineParamBindingV2'
      required:
        - result
      type: object
    ExpressionOperationV2:
      example:
        branches:
          branches:
            - 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
              result:
                array_value:
                  - label: Lawrence Jones
                    literal: SEV123
                    reference: incident.severity
                value:
                  label: Lawrence Jones
                  literal: SEV123
                  reference: incident.severity
          returns:
            array: true
            type: IncidentStatus
        filter:
          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
        navigate:
          reference: '1235'
          reference_label: Teams
        operation_type: navigate
        parse:
          returns:
            array: true
            type: IncidentStatus
          source: metadata.annotations["github.com/repo"]
        returns:
          array: true
          type: IncidentStatus
      properties:
        branches:
          $ref: '#/components/schemas/ExpressionBranchesOptsV2'
        filter:
          $ref: '#/components/schemas/ExpressionFilterOptsV2'
        navigate:
          $ref: '#/components/schemas/ExpressionNavigateOptsV2'
        operation_type:
          description: The type of the operation
          enum:
            - navigate
            - filter
            - concatenate
            - count
            - min
            - max
            - sum
            - random
            - first
            - parse
            - branches
          example: navigate
          type: string
        parse:
          $ref: '#/components/schemas/ExpressionParseOptsV2'
        returns:
          $ref: '#/components/schemas/ReturnsMetaV2'
      required:
        - operation_type
        - returns
      type: object
    ReturnsMetaV2:
      example:
        array: true
        type: IncidentStatus
      properties:
        array:
          description: Whether the return value should be single or multi-value
          example: true
          type: boolean
        type:
          description: >-
            Expected return type of this expression (what to try casting the
            result to)
          example: IncidentStatus
          type: string
      required:
        - type
        - array
      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
    ExpressionBranchPayloadV2:
      example:
        condition_groups:
          - conditions:
              - operation: one_of
                param_bindings:
                  - array_value:
                      - literal: SEV123
                        reference: incident.severity
                    value:
                      literal: SEV123
                      reference: incident.severity
                subject: incident.severity
        result:
          array_value:
            - literal: SEV123
              reference: incident.severity
          value:
            literal: SEV123
            reference: incident.severity
      properties:
        condition_groups:
          description: >-
            When one of these condition groups are satisfied, this branch will
            be evaluated
          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
        result:
          $ref: '#/components/schemas/EngineParamBindingPayloadV2'
      required:
        - condition_groups
        - result
      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
    ExpressionBranchesOptsV2:
      example:
        branches:
          - 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
            result:
              array_value:
                - label: Lawrence Jones
                  literal: SEV123
                  reference: incident.severity
              value:
                label: Lawrence Jones
                literal: SEV123
                reference: incident.severity
        returns:
          array: true
          type: IncidentStatus
      properties:
        branches:
          description: The branches to apply for this operation
          example:
            - 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
              result:
                array_value:
                  - label: Lawrence Jones
                    literal: SEV123
                    reference: incident.severity
                value:
                  label: Lawrence Jones
                  literal: SEV123
                  reference: incident.severity
          items:
            $ref: '#/components/schemas/ExpressionBranchV2'
          type: array
        returns:
          $ref: '#/components/schemas/ReturnsMetaV2'
      required:
        - branches
        - returns
      type: object
    ExpressionFilterOptsV2:
      example:
        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
      properties:
        condition_groups:
          description: >-
            The condition groups to apply in this filter. Only one group needs
            to be satisfied for the filter to pass.
          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
      required:
        - condition_groups
      type: object
    ExpressionNavigateOptsV2:
      example:
        reference: '1235'
        reference_label: Teams
      properties:
        reference:
          description: The reference within the scope to navigate to
          example: '1235'
          type: string
        reference_label:
          description: The name of the reference to navigate to
          example: Teams
          type: string
      required:
        - reference
        - reference_label
      type: object
    ExpressionParseOptsV2:
      example:
        returns:
          array: true
          type: IncidentStatus
        source: metadata.annotations["github.com/repo"]
      properties:
        returns:
          $ref: '#/components/schemas/ReturnsMetaV2'
        source:
          description: Source expression that is evaluated to a result
          example: metadata.annotations["github.com/repo"]
          type: string
      required:
        - source
        - returns
      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
    ExpressionBranchV2:
      example:
        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
        result:
          array_value:
            - label: Lawrence Jones
              literal: SEV123
              reference: incident.severity
          value:
            label: Lawrence Jones
            literal: SEV123
            reference: incident.severity
      properties:
        condition_groups:
          description: >-
            When one of these condition groups are satisfied, this branch will
            be evaluated
          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
        result:
          $ref: '#/components/schemas/EngineParamBindingV2'
      required:
        - condition_groups
        - result
      type: object
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: API key from your incident.io dashboard (Settings → API keys)

````