Harness Approvals API

This contains APIs for Approvals.

Operations 7

GET /v1/orgs/{org}/projects/{project}/approvals/execution/{execution-id} Gets Approval Instances by Execution Id #
POST /v1/orgs/{org}/projects/{project}/approvals/execution/{execution-id} Approve or Reject an Execution by Pipeline Execution ID #
POST /pipeline/api/approvals/{approvalInstanceId}/harness/activity Approve or Reject a Pipeline Execution #
GET /iacm/api/orgs/{org}/projects/{project}/approvals List approvals #
POST /iacm/api/orgs/{org}/projects/{project}/approvals Create approval #
GET /iacm/api/orgs/{org}/projects/{project}/approvals/{id} Show approval #
PUT /iacm/api/orgs/{org}/projects/{project}/approvals/{id} Update approval #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/harness-approvals-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

harness-approvals-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Harness Approvals API
  version: '1.0'
  description: The Harness Software Delivery Platform uses OpenAPI Specification v3.0.
  contact:
    name: API Support
    email: contact@harness.io
    url: https://harness.io/
  x-logo:
    url: https://mma.prnewswire.com/media/779232/Harnes_logo_horizontal.jpg?p=facebook
    altText: Harness
  termsOfService: https://harness.io/terms-of-use/
servers:
- url: https://app.harness.io
  description: Harness host URL
- url: https://{vanity}
  description: Vanity URL
  variables:
    vanity:
      default: app.harness.io
security:
- x-api-key: []
tags:
- name: Approvals
  description: This contains APIs for Approvals.
  x-displayName: Approvals
paths:
  /v1/orgs/{org}/projects/{project}/approvals/execution/{execution-id}:
    parameters:
    - $ref: '#/components/parameters/OrgParam'
    - $ref: '#/components/parameters/ProjectParam'
    - $ref: '#/components/parameters/ExecutionIdParam'
    get:
      summary: Gets Approval Instances by Execution Id
      operationId: getApprovalInstancesByExecutionId
      responses:
        '200':
          $ref: '#/components/responses/ApprovalInstanceListResponseBody'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
              examples:
                example-resp:
                  value: {}
            application/yaml:
              schema:
                type: object
                properties: {}
              examples:
                example-resp:
                  value: '{}

                    '
      description: Gets Approval Instances by Execution Id [Beta]
      security:
      - x-api-key: []
      parameters:
      - $ref: '#/components/parameters/AccountHeader4'
      - name: approval_status
        in: query
        description: This filters approval instances based on status
        schema:
          type: string
          enum:
          - WAITING
          - APPROVED
          - REJECTED
          - FAILED
          - ABORTED
          - EXPIRED
      - name: approval_type
        in: query
        description: This filters approval instances based on type
        schema:
          type: string
          enum:
          - HarnessApproval
          - JiraApproval
          - CustomApproval
          - ServiceNowApproval
      - name: node_execution_id
        in: query
        description: This filters approval instances based on runtime identifier of the step
        schema:
          type: string
      tags:
      - Approvals
      x-stoplight:
        id: wb59o71f1bds4
    post:
      summary: Approve or Reject an Execution by Pipeline Execution ID
      operationId: addHarnessApprovalActivityByPipelineExecutionId
      responses:
        '200':
          $ref: '#/components/responses/ApprovalInstanceResponseBody'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
      x-stoplight:
        id: vea4t933wijxl
      description: Approve or Reject an Execution by Pipeline Execution ID [Beta]
      security:
      - x-api-key: []
      parameters:
      - $ref: '#/components/parameters/AccountHeader4'
      - schema:
          type: string
        in: query
        name: callback_id
        description: This filters approval instances based on callback id given in the step parameters
      tags:
      - Approvals
      requestBody:
        $ref: '#/components/requestBodies/HarnessApprovalActivityRequestBody'
  /pipeline/api/approvals/{approvalInstanceId}/harness/activity:
    post:
      tags:
      - Approvals
      summary: Approve or Reject a Pipeline Execution
      operationId: addHarnessApprovalActivity
      parameters:
      - name: accountIdentifier
        in: query
        description: Account Identifier for the Entity.
        schema:
          type: string
      - name: approvalInstanceId
        in: path
        description: Approval Identifier for the entity
        required: true
        schema:
          type: string
      requestBody:
        description: Details of approval activity
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HarnessApprovalActivityRequest'
          application/yaml:
            schema:
              $ref: '#/components/schemas/HarnessApprovalActivityRequest'
        required: true
      responses:
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Failure'
            application/yaml:
              schema:
                $ref: '#/components/schemas/Failure'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PipelineError'
            application/yaml:
              schema:
                $ref: '#/components/schemas/PipelineError'
        default:
          description: Returns a newly added Harness Approval activity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseDTOApprovalInstanceResponse'
            application/yaml:
              schema:
                $ref: '#/components/schemas/ResponseDTOApprovalInstanceResponse'
  /iacm/api/orgs/{org}/projects/{project}/approvals:
    get:
      tags:
      - Approvals
      summary: List approvals
      description: List all the approvals
      operationId: approvals#list-approvals
      parameters:
      - name: limit
        in: query
        description: Limit is the number of records to return for a page.
        allowEmptyValue: true
        schema:
          type: integer
          description: Limit is the number of records to return for a page.
          default: 30
          example: 30
          format: int64
          minimum: 1
          maximum: 1000
        example: 30
      - name: page
        in: query
        description: Page is the page number to return relative to the page 'limit'.
        allowEmptyValue: true
        schema:
          type: integer
          description: Page is the page number to return relative to the page 'limit'.
          default: 1
          example: 1
          format: int64
          minimum: 1
        example: 1
      - name: workspace
        in: query
        description: Workspace identifier
        allowEmptyValue: true
        schema:
          type: string
          description: Workspace identifier
          example: Ipsa ratione.
        example: Eaque voluptas natus modi omnis.
      - name: pipeline_execution_id
        in: query
        description: Pipeline identifier
        allowEmptyValue: true
        schema:
          type: string
          description: Pipeline identifier
          example: Amet et sit qui.
        example: Omnis consequatur rerum amet deleniti ex.
      - name: pipeline_stage_id
        in: query
        description: Pipeline stage identifier
        allowEmptyValue: true
        schema:
          type: string
          description: Pipeline stage identifier
          example: Voluptas earum.
        example: Est a hic beatae non.
      - name: status_type
        in: query
        description: Status of the approval step
        allowEmptyValue: true
        schema:
          type: string
          description: Status of the approval step
          example: rejected
          enum:
          - approved
          - rejected
          - pending
        example: rejected
      - name: org
        in: path
        description: Org is the organisation identifier.
        required: true
        schema:
          type: string
          description: Org is the organisation identifier.
          example: q0
          minLength: 1
          maxLength: 128
        example: 2g
      - name: project
        in: path
        description: Project is the project identifier.
        required: true
        schema:
          type: string
          description: Project is the project identifier.
          example: '0'
          minLength: 1
          maxLength: 128
        example: u9
      - name: Harness-Account
        in: header
        description: Account is the internal customer account ID.
        allowEmptyValue: true
        required: true
        schema:
          type: string
          description: Account is the internal customer account ID.
          example: j
          minLength: 1
          maxLength: 128
        example: hw
      responses:
        '200':
          description: OK response.
          headers:
            x-page-size:
              description: Current page size
              schema:
                type: integer
                description: Current page size
                example: 50
                format: int64
              example: 50
            x-total-items:
              description: Total items available
              schema:
                type: integer
                description: Total items available
                example: 1800
                format: int64
              example: 1800
            x-total-pages:
              description: Total pages available
              schema:
                type: integer
                description: Total pages available
                example: 36
                format: int64
              example: 36
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApprovalResourceCollection'
              example:
              - account: kn8
                actioned_by: John Doe
                actioned_by_email: john.doe@example.com
                created: 8923043851235030000
                id: Aliquid quia dignissimos aut accusamus voluptates rerum.
                org: '1'
                pipeline_execution_id: A tempora asperiores consectetur.
                pipeline_stage_id: Id consequatur atque.
                project: bcz
                status: Quam saepe sit magnam tenetur.
                updated: 4501857522395362000
                workspace_id: Itaque sed eum.
              - account: kn8
                actioned_by: John Doe
                actioned_by_email: john.doe@example.com
                created: 8923043851235030000
                id: Aliquid quia dignissimos aut accusamus voluptates rerum.
                org: '1'
                pipeline_execution_id: A tempora asperiores consectetur.
                pipeline_stage_id: Id consequatur atque.
                project: bcz
                status: Quam saepe sit magnam tenetur.
                updated: 4501857522395362000
                workspace_id: Itaque sed eum.
              - account: kn8
                actioned_by: John Doe
                actioned_by_email: john.doe@example.com
                created: 8923043851235030000
                id: Aliquid quia dignissimos aut accusamus voluptates rerum.
                org: '1'
                pipeline_execution_id: A tempora asperiores consectetur.
                pipeline_stage_id: Id consequatur atque.
                project: bcz
                status: Quam saepe sit magnam tenetur.
                updated: 4501857522395362000
                workspace_id: Itaque sed eum.
        '400':
          description: 'BadRequestError: Bad Request response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '401':
          description: 'UnauthorizedError: Unauthorized response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '403':
          description: 'ForbiddenError: Forbidden response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '404':
          description: 'NotFoundError: Not Found response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '408':
          description: 'TimeoutError: Request Timeout response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '409':
          description: 'ConflictError: Conflict response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '423':
          description: 'LockedError: Locked response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '499':
          description: 'ContextCancelledError:  response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '500':
          description: 'InternalServerError: Internal Server Error response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '502':
          description: 'BadGatewayError: Bad Gateway response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
    post:
      tags:
      - Approvals
      summary: Create approval
      description: Create an approval resource
      operationId: approvals#create-approval
      parameters:
      - name: org
        in: path
        description: Org is the organisation identifier.
        required: true
        schema:
          type: string
          description: Org is the organisation identifier.
          example: p6w
          minLength: 1
          maxLength: 128
        example: 9f
      - name: project
        in: path
        description: Project is the project identifier.
        required: true
        schema:
          type: string
          description: Project is the project identifier.
          example: qy
          minLength: 1
          maxLength: 128
        example: u
      - name: Harness-Account
        in: header
        description: Account is the internal customer account ID.
        allowEmptyValue: true
        required: true
        schema:
          type: string
          description: Account is the internal customer account ID.
          example: urv
          minLength: 1
          maxLength: 128
        example: 9d
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApprovalRequest'
            example:
              pipeline_execution_id: Voluptas incidunt aut in et nostrum corrupti.
              pipeline_stage_id: Fugit perspiciatis nostrum.
              status: rejected
              workspace_id: Consectetur perferendis ipsa fugiat distinctio.
      responses:
        '200':
          description: OK response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApprovalsCreateApprovalResponseBodyCreation'
              example:
                id: Molestiae laborum molestiae vero temporibus in accusantium.
        '400':
          description: 'BadRequestError: Bad Request response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '401':
          description: 'UnauthorizedError: Unauthorized response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '403':
          description: 'ForbiddenError: Forbidden response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '404':
          description: 'NotFoundError: Not Found response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '408':
          description: 'TimeoutError: Request Timeout response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '409':
          description: 'ConflictError: Conflict response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '423':
          description: 'LockedError: Locked response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '499':
          description: 'ContextCancelledError:  response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '500':
          description: 'InternalServerError: Internal Server Error response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '502':
          description: 'BadGatewayError: Bad Gateway response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
  /iacm/api/orgs/{org}/projects/{project}/approvals/{id}:
    get:
      tags:
      - Approvals
      summary: Show approval
      description: Retrieve a single approval
      operationId: approvals#show-approval
      parameters:
      - name: org
        in: path
        description: Org is the organisation identifier.
        required: true
        schema:
          type: string
          description: Org is the organisation identifier.
          example: c
          minLength: 1
          maxLength: 128
        example: '0x3'
      - name: project
        in: path
        description: Project is the project identifier.
        required: true
        schema:
          type: string
          description: Project is the project identifier.
          example: 6i2
          minLength: 1
          maxLength: 128
        example: oau
      - name: id
        in: path
        required: true
        schema:
          type: string
          example: 0908a582-8625-4512-bf0d-45bdf2e112d0
          format: uuid
        example: 98fcd82e-9918-45be-b790-17eb77a06c16
      - name: Harness-Account
        in: header
        description: Account is the internal customer account ID.
        allowEmptyValue: true
        required: true
        schema:
          type: string
          description: Account is the internal customer account ID.
          example: s
          minLength: 1
          maxLength: 128
        example: ao
      responses:
        '200':
          description: OK response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApprovalsShowApprovalResponseBodyStatusInfo'
              example:
                actioned_by: John Doe
                actioned_by_email: john.doe@example.com
                created: 5637120847478505000
                status: Omnis vitae voluptas necessitatibus cum aliquam.
                updated: 301395675069357600
        '400':
          description: 'BadRequestError: Bad Request response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '401':
          description: 'UnauthorizedError: Unauthorized response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '403':
          description: 'ForbiddenError: Forbidden response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '404':
          description: 'NotFoundError: Not Found response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '408':
          description: 'TimeoutError: Request Timeout response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '409':
          description: 'ConflictError: Conflict response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '423':
          description: 'LockedError: Locked response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '499':
          description: 'ContextCancelledError:  response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '500':
          description: 'InternalServerError: Internal Server Error response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '502':
          description: 'BadGatewayError: Bad Gateway response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
    put:
      tags:
      - Approvals
      summary: Update approval
      description: Update a single approval
      operationId: approvals#update-approval
      parameters:
      - name: org
        in: path
        description: Org is the organisation identifier.
        required: true
        schema:
          type: string
          description: Org is the organisation identifier.
          example: amc
          minLength: 1
          maxLength: 128
        example: n1z
      - name: project
        in: path
        description: Project is the project identifier.
        required: true
        schema:
          type: string
          description: Project is the project identifier.
          example: vm1
          minLength: 1
          maxLength: 128
        example: '85'
      - name: id
        in: path
        required: true
        schema:
          type: string
          example: d58acd58-54f0-4e21-ba42-d8cace73ae8e
          format: uuid
        example: 9695d48e-df8e-4230-aad5-eb17f3a053c3
      - name: Harness-Account
        in: header
        description: Account is the internal customer account ID.
        allowEmptyValue: true
        required: true
        schema:
          type: string
          description: Account is the internal customer account ID.
          example: epo
          minLength: 1
          maxLength: 128
        example: 6is
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateApprovalRequest'
            example:
              actioned_by: John Doe
              actioned_by_email: john.doe@example.com
              status: approved
      responses:
        '200':
          description: OK response.
        '400':
          description: 'BadRequestError: Bad Request response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '401':
          description: 'UnauthorizedError: Unauthorized response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '403':
          description: 'ForbiddenError: Forbidden response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '404':
          description: 'NotFoundError: Not Found response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '408':
          description: 'TimeoutError: Request Timeout response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '409':
          description: 'ConflictError: Conflict response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '423':
          description: 'LockedError: Locked response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '499':
          description: 'ContextCancelledError:  response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '500':
          description: 'InternalServerError: Internal Server Error response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
        '502':
          description: 'BadGatewayError: Bad Gateway response.'
          content:
            application/vnd.goa.error:
              schema:
                $ref: '#/components/schemas/IaCMError'
components:
  schemas:
    ApproverInputDTO:
      title: ApproverInputDTO
      x-stoplight:
        id: mc7808h6bnsue
      type: object
      properties:
        name:
          type: string
          x-stoplight:
            id: k8yfcg1h5zlnn
          minLength: 1
        value:
          type: string
          x-stoplight:
            id: spxgshivv83fx
          minLength: 0
      description: Approver Input DTO
    Failure:
      type: object
      properties:
        status:
          type: string
          enum:
          - SUCCESS
          - FAILURE
          - ERROR
        code:
          type: string
          enum:
          - DEFAULT_ERROR_CODE
          - INVALID_ARGUMENT
          - INVALID_EMAIL
          - DOMAIN_NOT_ALLOWED_TO_REGISTER
          - COMMNITY_EDITION_NOT_FOUND
          - DEPLOY_MODE_IS_NOT_ON_PREM
          - USER_ALREADY_REGISTERED
          - USER_INVITATION_DOES_NOT_EXIST
          - USER_DOES_NOT_EXIST
          - USER_INVITE_OPERATION_FAILED
          - USER_DISABLED
          - ACCOUNT_DOES_NOT_EXIST
          - INACTIVE_ACCOUNT
          - ACCOUNT_MIGRATED
          - ACCOUNT_MIGRATED_TO_NEXT_GEN
          - USER_DOMAIN_NOT_ALLOWED
          - MAX_FAILED_ATTEMPT_COUNT_EXCEEDED
          - RESOURCE_NOT_FOUND
          - INVALID_FORMAT
          - ROLE_DOES_NOT_EXIST
          - EMAIL_NOT_VERIFIED
          - EMAIL_VERIFICATION_TOKEN_NOT_FOUND
          - INVALID_TOKEN
          - REVOKED_TOKEN
          - INVALID_CAPTCHA_TOKEN
          - NOT_ACCOUNT_MGR_NOR_HAS_ALL_APP_ACCESS
          - EXPIRED_TOKEN
          - INVALID_AGENT_MTLS_AUTHORITY
          - TOKEN_ALREADY_REFRESHED_ONCE
          - ACCESS_DENIED
          - NG_ACCESS_DENIED
          - INVALID_CREDENTIAL
          - INVALID_CREDENTIALS_THIRD_PARTY
          - INVALID_KEY
          - INVALID_CONNECTOR_TYPE
          - INVALID_KEYPATH
          - INVALID_VARIABLE
          - UNKNOWN_HOST
          - UNREACHABLE_HOST
          - INVALID_PORT
          - SSH_SESSION_TIMEOUT
          - ALGORITHM_NEGOTIATION_ERROR
          - SOCKET_CONNECTION_ERROR
          - CONNECTION_ERROR
          - COULD_NOT_PROCESS_ERROR
          - SOCKET_CONNECTION_TIMEOUT
          - WINRM_COMMAND_EXECUTION_TIMEOUT
          - CONNECTION_TIMEOUT
          - SSH_CONNECTION_ERROR
          - USER_GROUP_ERROR
          - INVALID_EXECUTION_ID
          - ERROR_IN_GETTING_CHANNEL_STREAMS
          - UNEXPECTED
          - UNKNOWN_ERROR
          - UNKNOWN_EXECUTOR_TYPE_ERROR
          - DUPLICATE_STATE_NAMES
          - TRANSITION_NOT_LINKED
          - TRANSITION_TO_INCORRECT_STATE
          - TRANSITION_TYPE_NULL
          - STATES_WITH_DUP_TRANSITIONS
          - BARRIERS_NOT_RUNNING_CONCURRENTLY
          - NON_FORK_STATES
          - NON_REPEAT_STATES
          - INITIAL_STATE_NOT_DEFINED
          - FILE_INTEGRITY_CHECK_FAILED
          - INVALID_URL
          - FILE_DOWNLOAD_FAILED
          - PLATFORM_SOFTWARE_DELETE_ERROR
          - INVALID_CSV_FILE
          - INVALID_REQUEST
          - SCHEMA_VALIDATION_FAILED
          - FILTER_CREATION_ERROR
          - INVALID_YAML_ERROR
          - PLAN_CREATION_ERROR
          - INVALID_INFRA_STATE
          - PIPELINE_ALREADY_TRIGGERED
          - NON_EXISTING_PIPELINE
          - DUPLICATE_COMMAND_NAMES
          - INVALID_PIPELINE
          - COMMAND_DOES_NOT_EXIST
          - DUPLICATE_ARTIFACTSTREAM_NAMES
          - DUPLICATE_HOST_NAMES
          - STATE_NOT_FOR_TYPE
          - STATE_MACHINE_ISSUE
          - STATE_DISCONTINUE_FAILED
          - STATE_PAUSE_FAILED
          - PAUSE_ALL_ALREADY
          - RESUME_ALL_ALREADY
          - ROLLBACK_ALREADY
          - ABORT_ALL_ALREADY
          - EXPIRE_ALL_ALREADY
          - RETRY_FAILED
          - UNKNOWN_ARTIFACT_TYPE
          - UNKNOWN_STAGE_ELEMENT_WRAPPER_TYPE
          - INIT_TIMEOUT
          - LICENSE_EXPIRED
          - NOT_LICENSED
          - REQUEST_TIMEOUT
          - SCM_REQUEST_TIMEOUT
          - WORKFLOW_ALREADY_TRIGGERED
          - JENKINS_ERROR
          - INVALID_ARTIFACT_SOURCE
          - INVALID_ARTIFACT_SERVER
          - INVALID_CLOUD_PROVIDER
          - UPDATE_NOT_ALLOWED
          - DELETE_NOT_ALLOWED
          - APPDYNAMICS_CONFIGURATION_ERROR
          - APM_CONFIGURATION_ERROR
          - SPLUNK_CONFIGURATION_ERROR
          - ELK_CONFIGURATION_ERROR
          - LOGZ_CONFIGURATION_ERROR
          - SUMO_CONFIGURATION_ERROR
          - INSTANA_CONFIGURATION_ERROR
          - APPDYNAMICS_ERROR
          - STACKDRIVER_ERROR
          - STACKDRIVER_CONFIGURATION_ERROR
          - NEWRELIC_CONFIGURATION_ERROR
          - NEWRELIC_ERROR
          - DYNA_TRACE_CONFIGURATION_ERROR
          - DYNA_TRACE_ERROR
          - CLOUDWATCH_ERROR
          - CLOUDWATCH_CONFIGURATION_ERROR
          - PROMETHEUS_CONFIGURATION_ERROR
          - DATA_DOG_CONFIGURATION_ERROR
          - SERVICE_GUARD_CONFIGURATION_ERROR
          - ENCRYPTION_NOT_CONFIGURED
          - UNAVAILABLE_DELEGATES
          - WORKFLOW_EXECUTION_IN_PROGRESS
          - PIPELINE_EXECUTION_IN_PROGRESS
          - AWS_ACCESS_DENIED
          - AWS_CLUSTER_NOT_FOUND
          - AWS_SERVICE_NOT_FOUND
          - IMAGE_NOT_FOUND
          - ILLEGAL_ARGUMENT
          - IMAGE_TAG_NOT_FOUND
          - DELEGATE_NOT_AVAILABLE
          - INVALID_YAML_PAYLOAD
          - AUTHENTICATION_ERROR
          - AUTHORIZATION_ERROR
          - UNRECOGNIZED_YAML_FIELDS
          - COULD_NOT_MAP_BEFORE_YAML
          - MISSING_BEFORE_YAML
          - MISSING_YAML
          - NON_EMPTY_DELETIONS
          - GENERAL_YAML_ERROR
          - GENERAL_YAML_INFO
          - YAML_GIT_SYNC_ERROR
          - GIT_CONNECTION_ERROR
          - GIT_ERROR
          - ARTIFACT_SERVER_ERROR
          - ENCRYPT_DECRYPT_ERROR
          - SECRET_MANAGEMENT_ERROR
          - SECRET_NOT_FOUND
          - KMS_OPERATION_ERROR
          - GCP_KMS_OPERATION_ERROR
          - VAULT_OPERATION_ERROR
          - AWS_SECRETS_MANAGER_OPERATION_ERROR
          - AZURE_KEY_VAULT_OPERATION_ERROR
          - AZURE_KEY_VAULT_INTERRUPT_ERROR
          - UNSUPPORTED_OPERATION_EXCEPTION
          - FEATURE_UNAVAILABLE
          - GENERAL_ERROR
          - BASELINE_CONFIGURATION_ERROR
          - SAML_IDP_CONFIGURATION_NOT_AVAILABLE
          - INVALID_AUTHENTICATION_MECHANISM
          - INVALID_SAML_CONFIGURATION
          - INVALID_OAUTH_CONFIGURATION
          - INVALID_LDAP_CONFIGURATION
          - USER_GROUP_SYNC_FAILURE
          - USER_GROUP_ALREADY_EXIST
          - INVALID_TWO_FACTOR_AUTHENTICATION_CONFIGURATION
          - EXPLANATION
          - HINT
          - NOT_WHITELISTED_IP
          - INVALID_TOTP_TOKEN
          - EMAIL_FAILED
          - SSL_HANDSHAKE_FAILED
          - NO_APPS_ASSIGNED
          - INVALID_INFRA_CONFIGURATION
          - TEMPLATES_LINKED
          - USER_HAS_NO_PERMISSIONS
          - USER_NOT_AUTHORIZED
          - USER_ALREADY_PRESENT
          - EMAIL_ERROR
          - INVALID_USAGE_RESTRICTION
          - USAGE_RESTRICTION_ERROR
          - STATE_EXECUTION_INSTANCE_NOT_FOUND
          - DELEGATE_TASK_RETRY
          - KUBERNETES_API_TASK_EXCEP

# --- truncated at 32 KB (104 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/harness/refs/heads/main/openapi/harness-approvals-api-openapi.yml