openapi: 3.1.0
info:
  title: Maia Public REST API
  version: "1.0"
servers:
- description: EU1
  url: https://eu1.api.matillion.com/dpc
- description: US1
  url: https://us1.api.matillion.com/dpc
security:
- bearerAuth: []
tags:
- description: Manage Schedules
  name: Schedules
- description: Manage Connections
  name: Connections
- description: Operations for managing Project Variables
  name: Project Variables
- description: Manage Pipelines
  name: Pipelines
- description: Review pipelines against quality rules
  name: Pipeline Quality Review
- description: Execute tests within a project
  name: Test Execution
- description: Manage your AI agent tasks
  name: AI Agent Tasks
- description: SCIM endpoints for user/group permission management
  name: Directory Integration
- description: Publish shared pipeline artifacts
  name: Shared Pipeline Artifacts
- description: Manage Repositories
  name: Repositories
- description: Report on Credit Consumption
  name: Consumption
- description: Manage Artifacts
  name: Artifacts
- description: Operations for data lineage and governance
  name: Data Lineage
- description: Manage Streaming Pipelines
  name: Streaming Pipelines
- description: Execute a pipeline
  name: Pipeline Execution
- description: ""
  name: Environments
- description: ""
  name: Projects
- description: Manage Agents
  name: Agents
- description: Operations for managing Environment-level Overrides of Project Variables
  name: Project Variable Environment Overrides
- description: Query audit events
  name: Audit Events
- description: Connector Profiles
  name: Connectors
paths:
  /v1/agents:
    get:
      description: "Lists All Agents, including summary details for each Agent"
      operationId: getAgents
      parameters:
      - description: Page number (0-indexed)
        example: "0"
        in: query
        name: page
        schema: {}
      - description: Number of records per page (from 1 to 100)
        example: "25"
        in: query
        name: size
        schema: {}
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedResultListAgentSummary"
          description: Success
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/bad-request
                  title: Bad Request
                  status: 400
                  detail: Failed to read request. Please check your request body.
                  instance: /v1/agents
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/forbidden
                  title: Forbidden
                  status: 403
                  detail: You do not have permission to access this resource.
                  instance: /v1/agents
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/not-found
                  title: Not Found
                  status: 404
                  detail: The requested agent does not exist.
                  instance: /v1/agents
          description: Agents not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/internal-server-error
                  title: Internal Server Error
                  status: 500
                  detail: Unexpected error occurred while processing the request.
                  instance: /v1/agents
          description: Unexpected error occurred
      summary: List All Agents
      tags:
      - Agents
    post:
      description: |-
        Creates a new Agent with the specified configuration details.

        Please note that some combinations are not compatible, for example, an agentType of 'streaming' cannot have the `enableAutoUpdates` set to true.
      operationId: createAgent
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateAgentRequest"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentInfo"
          description: Agent created successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/bad-request
                  title: Bad Request
                  status: 400
                  detail: Failed to read request. Please check your request body.
                  instance: /v1/agents
          description: Invalid request body used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/forbidden
                  title: Forbidden
                  status: 403
                  detail: You do not have permission to access this resource.
                  instance: /v1/agents
          description: Forbidden
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/internal-server-error
                  title: Internal Server Error
                  status: 500
                  detail: Unexpected error occurred while processing the request.
                  instance: /v1/agents
          description: Unexpected error occurred
      summary: Create a new Agent
      tags:
      - Agents
  /v1/agents/releases:
    get:
      description: "Returns a paginated list of agent version track history entries.\
        \ Results can be filtered by track name, support level, version, or release\
        \ date range."
      operationId: getAgentTrackHistory
      parameters:
      - description: "Filter by track name. Valid values: CURRENT, STABLE"
        in: query
        name: trackName
        required: false
        schema:
          type: string
      - description: "Filter by support level. Valid values: SUPPORTED, UNSUPPORTED,\
          \ DEPRECATED"
        in: query
        name: supportLevel
        required: false
        schema:
          type: string
      - description: Filter by specific agent version
        in: query
        name: version
        required: false
        schema:
          type: string
      - description: Return only entries released before this date (ISO 8601 format)
        in: query
        name: releasedBefore
        required: false
        schema:
          type: string
      - description: Return only entries released after this date (ISO 8601 format)
        in: query
        name: releasedAfter
        required: false
        schema:
          type: string
      - description: Page number (0-indexed)
        example: "0"
        in: query
        name: page
        schema: {}
      - description: Number of records per page (from 1 to 100)
        example: "25"
        in: query
        name: size
        schema: {}
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentTrackHistoryResponse"
          description: Success
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/bad-request
                  title: Bad Request
                  status: 400
                  detail: Failed to read request. Please check your request body.
                  instance: /v1/agents/releases
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/forbidden
                  title: Forbidden
                  status: 403
                  detail: You do not have permission to access this resource.
                  instance: /v1/agents/releases
          description: Forbidden
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/internal-server-error
                  title: Internal Server Error
                  status: 500
                  detail: Unexpected error occurred while processing the request.
                  instance: /v1/agents/releases
          description: Unexpected error occurred
      summary: Get Agent Track History
      tags:
      - Agents
  /v1/agents/{agentId}:
    delete:
      description: "This request can only be used to delete agents that have a STOPPED,\
        \ PENDING or UNKNOWN status. In the case of an agent at UNKNOWN status, there\
        \ is a delay of up to one hour after its preceding status before the agent\
        \ can be deleted successfully."
      operationId: deleteAgent
      parameters:
      - description: The ID of the agent to delete
        in: path
        name: agentId
        required: true
        schema:
          type: string
      responses:
        "202":
          description: Agent successfully deleted
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/bad-request
                  title: Bad Request
                  status: 400
                  detail: Failed to read request. Please check your request body.
                  instance: "/v1/agents/{agentId}"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/forbidden
                  title: Forbidden
                  status: 403
                  detail: You do not have permission to access this resource.
                  instance: "/v1/agents/{agentId}"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/not-found
                  title: Not Found
                  status: 404
                  detail: The requested agent does not exist.
                  instance: "/v1/agents/{agentId}"
          description: Agent not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/internal-server-error
                  title: Internal Server Error
                  status: 500
                  detail: Unexpected error occurred while processing the request.
                  instance: "/v1/agents/{agentId}"
          description: Unexpected error occurred
      summary: Delete an Agent
      tags:
      - Agents
    get:
      description: Retrieves details for a specific agent
      operationId: getAgent
      parameters:
      - description: The ID of the agent to retrieve
        in: path
        name: agentId
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentInfo"
          description: Success
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/bad-request
                  title: Bad Request
                  status: 400
                  detail: Failed to read request. Please check your request body.
                  instance: "/v1/agents/{agentId}"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/forbidden
                  title: Forbidden
                  status: 403
                  detail: You do not have permission to access this resource.
                  instance: "/v1/agents/{agentId}"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/not-found
                  title: Not Found
                  status: 404
                  detail: The requested agent does not exist.
                  instance: "/v1/agents/{agentId}"
          description: Agent not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/internal-server-error
                  title: Internal Server Error
                  status: 500
                  detail: Unexpected error occurred while processing the request.
                  instance: "/v1/agents/{agentId}"
          description: Unexpected error occurred
      summary: Get agent details
      tags:
      - Agents
    patch:
      description: |-
        This request can be used to update Hybrid Agents. The following fields can be updated:

        - name - The name of the Agent.
        - description - The description for the agent.
        - enableAutoUpdates - Enabling Automatic Updates for the Agent. Note, this cannot be set for Snowflake Agents.
        - restrictedAccess - Set to true and use in conjunction with the Allow list if you wish to restrict the use of the agent to specified Environments and Projects.
        - trackName - The version track name for the Agent (CURRENT or STABLE). Note, Snowflake agents cannot be updated.

        Please note, all the above fields are optional
      operationId: updateAgent
      parameters:
      - description: The ID of the agent to update
        in: path
        name: agentId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            examples:
              Patch Request for a single field:
                description: Example request to update only the track name of the
                  agent
                value:
                  trackName: STABLE
              Patch Request for multiple fields:
                description: Example request updating both track name and description
                value:
                  name: Generic Agent
                  description: An updated agent description
                  trackName: STABLE
                  restrictedAccess: false
                  enableAutoUpdates: true
            schema:
              $ref: "#/components/schemas/AgentUpdate"
        required: true
      responses:
        "202":
          description: Agent successfully updated
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/bad-request
                  title: Bad Request
                  status: 400
                  detail: Failed to read request. Please check your request body.
                  instance: "/v1/agents/{agentId}"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/forbidden
                  title: Forbidden
                  status: 403
                  detail: You do not have permission to access this resource.
                  instance: "/v1/agents/{agentId}"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/not-found
                  title: Not Found
                  status: 404
                  detail: The requested agent does not exist.
                  instance: "/v1/agents/{agentId}"
          description: Agent not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/internal-server-error
                  title: Internal Server Error
                  status: 500
                  detail: Unexpected error occurred while processing the request.
                  instance: "/v1/agents/{agentId}"
          description: Unexpected error occurred
      summary: Update an Agent
      tags:
      - Agents
  /v1/agents/{agentId}/allowlist:
    delete:
      description: |-
        Removes the specified project or environment from the allowed access list of the defined agent.

        If an environmentName is supplied, then this will be removed, but the project will remain in the Agent's Allow List. If no environmentName is supplied, then the project (and any associated environments) will be removed from the Agent's Allow list.

        NOTE: Whilst the Agent property `restrictedAccess` is set to false, any amendments to `allow` will not be enforced until `restrictedAccess` is set to true.
      operationId: deleteProjectFromAgentAccess
      parameters:
      - description: The ID of the agent to remove project and/or environment access
          from
        in: path
        name: agentId
        required: true
        schema:
          type: string
      - description: "The ID of the project to remove from Agent allow list if no\
          \ environment is provided, or the project id to remove the environment from"
        in: query
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - description: "Optional environment to remove from the Agent's allowed usage\
          \ of the project (if not provided, removes entire project)"
        in: query
        name: environmentName
        required: false
        schema:
          type: string
      responses:
        "202":
          description: Project and/or environment successfully removed from Agent
            Allow list
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Agent not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Remove project from Agent Allow list
      tags:
      - Agents
    get:
      description: |-
        Get the list of projects the Agent is restricted to only when the agent has the property `restrictedAccess` set to true.

        If `restrictedAccess` is set to true and the list of projects is empty, then the Agent will not be applicable to be assigned to any project.

        If `restrictedAccess` is set to false for the Agent, then restriction to these projects will not be enforced.
      operationId: getAgentAccessList
      parameters:
      - description: The ID of the agent having the allow list set
        in: path
        name: agentId
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentAccessResponse"
          description: Agent allow list successfully retrieved
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/bad-request
                  title: Bad request
                  status: 400
                  detail: Invalid request format. Please check the parameters supplied.
                  instance: "/v1/agents/{agentId}/allowlist"
          description: Invalid request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/forbidden
                  title: Forbidden
                  status: 403
                  detail: You do not have permission to access this resource.
                  instance: "/v1/agents/{agentId}/allowlist"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/not-found
                  title: Not Found
                  status: 404
                  detail: None found
                  instance: "/v1/agents/{agentId}/allowlist"
          description: Agent not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/internal-server-error
                  title: Internal Server Error
                  status: 500
                  detail: Unexpected error occurred while processing the request.
                  instance: "/v1/agents/{agentId}/allowlist"
          description: Unexpected error occurred
      summary: Get the Agent Allow list
      tags:
      - Agents
    patch:
      description: |-
        A request to add project(s) and/or environment(s)to the Agent Allow list.

        NOTE: Whilst the Agent property `restrictedAccess` is set to false, any amendments to will not be enforced until `restrictedAccess` is set to true.
      operationId: addProjectToAgentAccessList
      parameters:
      - description: The ID of the agent to add the project(s) and/or environment(s)
          to for access
        in: path
        name: agentId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            examples:
              Mixed projects:
                description: "An example request to add two projects: one with environments,\
                  \ one without"
                value:
                  projects:
                    "3fa85f64-5717-4562-b3fc-2c963f66afa6":
                      environments:
                      - dev
                      - prod
                    "1398aa31-af57-4a6a-9752-27c2e8556c3f": {}
              Project with environments:
                description: An example request to add a project with specific environments
                value:
                  projects:
                    "3fa85f64-5717-4562-b3fc-2c963f66afa6":
                      environments:
                      - dev
                      - prod
              Project with no environments:
                description: An example request to add a project with no specific
                  environments (empty object)
                value:
                  projects:
                    "3fa85f64-5717-4562-b3fc-2c963f66afa6": {}
            schema:
              $ref: "#/components/schemas/UpdateAgentAccessRequest"
        required: true
      responses:
        "202":
          description: Project and/or environment successfully added to the Agent
            Allow list
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/bad-request
                  title: Bad request
                  status: 400
                  detail: Invalid request format. Please check your request body.
                  instance: "/v1/agents/{agentId}/allowlist"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/forbidden
                  title: Forbidden
                  status: 403
                  detail: You do not have permission to access this resource.
                  instance: "/v1/agents/{agentId}/allowlist"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/not-found
                  title: Not Found
                  status: 404
                  detail: None found
                  instance: "/v1/agents/{agentId}/allowlist"
          description: Agent not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/internal-server-error
                  title: Internal Server Error
                  status: 500
                  detail: Unexpected error occurred while processing the request.
                  instance: "/v1/agents/{agentId}/allowlist"
          description: Unexpected error occurred
      summary: Add project(s) and/or environment(s) to the Agent Allow list
      tags:
      - Agents
    put:
      description: |-
        Set the list of projects the Agent will be restricted to only when the agent has the property `restrictedAccess` set to true. If projects are empty, this will remove all projects the agent is restricted to, effectively making the agent inaccessible to any project when the agent property has `restrictedAccess` set to true.

        Please keep in mind that by using endpoint you are setting the allow list and so this will overwrite any previously set values, if you want to simply update the existing allow list please refer to the PATCH endpoint.

        NOTE: Whilst the Agent property `restrictedAccess` is set to false, any amendments will not be enforced until `restrictedAccess` is set to true.
      operationId: setAgentAccessList
      parameters:
      - description: The ID of the agent having the allow list set
        in: path
        name: agentId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            examples:
              Mixed projects:
                description: "An example request to set two projects: one with environments,\
                  \ one without"
                value:
                  projects:
                    "3fa85f64-5717-4562-b3fc-2c963f66afa6":
                      environments:
                      - dev
                      - prod
                    "1398aa31-af57-4a6a-9752-27c2e8556c3f": {}
              Project with environments:
                description: An example request to set a project with specific environments
                value:
                  projects:
                    "3fa85f64-5717-4562-b3fc-2c963f66afa6":
                      environments:
                      - dev
                      - prod
              Project with no environments:
                description: An example request to set a project with no specific
                  environments (empty object)
                value:
                  projects:
                    "3fa85f64-5717-4562-b3fc-2c963f66afa6": {}
              Set Agent Access Request Without Projects:
                description: An empty request to clear the Agent's Allow list
                value:
                  projects: {}
            schema:
              $ref: "#/components/schemas/SetAgentAccessRequest"
        required: true
      responses:
        "202":
          description: Agent allow list successfully updated
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/bad-request
                  title: Bad request
                  status: 400
                  detail: Invalid request format. Please check your request body.
                  instance: "/v1/agents/{agentId}/allowlist"
          description: Invalid request body used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/forbidden
                  title: Forbidden
                  status: 403
                  detail: You do not have permission to access this resource.
                  instance: "/v1/agents/{agentId}/allowlist"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/not-found
                  title: Not Found
                  status: 404
                  detail: None found
                  instance: "/v1/agents/{agentId}/allowlist"
          description: Agent not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/internal-server-error
                  title: Internal Server Error
                  status: 500
                  detail: Unexpected error occurred while processing the request.
                  instance: "/v1/agents/{agentId}/allowlist"
          description: Unexpected error occurred
      summary: Set Agent Allow List
      tags:
      - Agents
  /v1/agents/{agentId}/commands:
    post:
      description: |-
        The command to be triggered.

        Available commands are:
        - RESTART - Restart the Agent.
        - PAUSE - Set the Agent to 'Paused'.
        - RESUME - Un-sets a 'Paused' agent.
      operationId: sendAgentCommand
      parameters:
      - in: path
        name: agentId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AgentCommandRequest"
        required: true
      responses:
        "202":
          description: Agent command received successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/bad-request
                  title: Bad Request
                  status: 400
                  detail: Failed to read request. Please check your request body.
                  instance: "/v1/agents/{agentId}/commands"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/forbidden
                  title: Forbidden
                  status: 403
                  detail: You do not have permission to access this resource.
                  instance: "/v1/agents/{agentId}/commands"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/not-found
                  title: Not Found
                  status: 404
                  detail: The requested agent does not exist.
                  instance: "/v1/agents/{agentId}/commands"
          description: Agent not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/internal-server-error
                  title: Internal Server Error
                  status: 500
                  detail: Unexpected error occurred while processing the request.
                  instance: "/v1/agents/{agentId}/commands"
          description: Unexpected error occurred
      summary: Trigger an Agent command
      tags:
      - Agents
  /v1/agents/{agentId}/credentials:
    get:
      description: Return the Client ID and Client secret for the Agent
      operationId: getAgentCredentials
      parameters:
      - description: The ID of the agent to retrieve credentials for
        in: path
        name: agentId
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentCredentials"
          description: Success
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/bad-request
                  title: Bad Request
                  status: 400
                  detail: Failed to read request. Please check your request body.
                  instance: "/v1/agents/{agentId}/credentials"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/forbidden
                  title: Forbidden
                  status: 403
                  detail: You do not have permission to access this resource.
                  instance: "/v1/agents/{agentId}/credentials"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/not-found
                  title: Not Found
                  status: 404
                  detail: The requested agent does not exist.
                  instance: "/v1/agents/{agentId}/credentials"
          description: Agent not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/internal-server-error
                  title: Internal Server Error
                  status: 500
                  detail: Unexpected error occurred while processing the request.
                  instance: "/v1/agents/{agentId}/credentials"
          description: Unexpected error occurred
      summary: Get Agent Client Credentials
      tags:
      - Agents
    post:
      description: Endpoint to perform actions on Agent Credentials such as refreshing
        them
      operationId: refreshAgentCredentials
      parameters:
      - description: The ID of the agent
        in: path
        name: agentId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AgentCredentialsRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentCredentials"
          description: Success
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/bad-request
                  title: Bad Request
                  status: 400
                  detail: Failed to read request. Please check your request body.
                  instance: "/v1/agents/{agentId}/credentials"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/forbidden
                  title: Forbidden
                  status: 403
                  detail: You do not have permission to access this resource.
                  instance: "/v1/agents/{agentId}/credentials"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/not-found
                  title: Not Found
                  status: 404
                  detail: The requested agent does not exist.
                  instance: "/v1/agents/{agentId}/credentials"
          description: Agent not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
                example:
                  type: https://api.matillion.com/problems/internal-server-error
                  title: Internal Server Error
                  status: 500
                  detail: Unexpected error occurred while processing the request.
                  instance: "/v1/agents/{agentId}/credentials"
          description: Unexpected error occurred
      summary: Perform actions on Agent Credentials
      tags:
      - Agents
  /v1/ai/agents/tasks:
    get:
      description: "Returns a list of AI agent tasks for the account, optionally filtered\
        \ by project, branch, status, or creation time."
      operationId: getTasks
      parameters:
      - description: Filter results to tasks belonging to this project.
        in: query
        name: projectId
        required: false
        schema:
          type: string
      - description: Filter results to tasks belonging to this branch.
        in: query
        name: branchId
        required: false
        schema:
          type: string
      - description: Filter results to tasks with the given status.
        in: query
        name: status
        required: false
        schema:
          type: string
          enum:
          - RUNNING
          - STOPPED
          - STOPPING
          - ERRORED
      - description: Return only tasks created at or after this ISO-8601 timestamp
          (inclusive).
        example: 2024-01-15T10:30:00Z
        in: query
        name: createdAfter
        required: false
        schema:
          type: string
          format: date-time
      - description: Return only tasks created at or before this ISO-8601 timestamp
          (inclusive).
        example: 2024-01-15T10:30:00Z
        in: query
        name: createdBefore
        required: false
        schema:
          type: string
          format: date-time
      - in: query
        name: page
        required: false
        schema:
          type: integer
          format: int32
          default: 0
          minimum: 0
      - in: query
        name: size
        required: false
        schema:
          type: integer
          format: int32
          default: 20
          maximum: 100
          minimum: 1
      responses:
        "200":
          content:
            application/json:
              examples:
                List of agent tasks:
                  description: Example response listing agent tasks for an account
                  value:
                    tasks:
                    - taskId: 550e8400-e29b-41d4-a716-446655440000
                      status: RUNNING
                      agentName: data_engineer_agent
                      mode: ACT
                      description: Build a pipeline to load sales data
                      createdAt: 2024-01-15T10:30:00Z
                      modifiedAt: 2024-01-15T10:35:00Z
                      projectId: 550e8400-e29b-41d4-a716-446655440001
                      branchId: main
                    page: 0
                    size: 20
                    total: 1
              schema:
                $ref: "#/components/schemas/GetTasksResponse"
          description: Agent tasks listed successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid filter parameters
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Missing or invalid authentication token
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Insufficient permissions to list agent tasks
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Resource not found
        "502":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Upstream service error
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Upstream service timeout
      summary: List AI Agent Tasks
      tags:
      - AI Agent Tasks
    post:
      description: Creates a new AI agent task and starts async execution. Poll the
        messages endpoint to retrieve results.
      operationId: createTask
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateTaskRequest"
        required: true
      responses:
        "201":
          content:
            application/json:
              examples:
                Created agent task:
                  description: Example response for a successfully created agent task
                  value:
                    taskId: 550e8400-e29b-41d4-a716-446655440000
                    status: RUNNING
                    agentName: data_engineer_agent
                    createdAt: 2024-01-15T10:30:00Z
              schema:
                $ref: "#/components/schemas/CreateTaskResponse"
          description: Agent task created successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request body
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Missing or invalid authentication token
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Insufficient permissions to create an agent task
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Resource not found
        "502":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Upstream service error
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Upstream service timeout
      summary: Create an AI Agent Task
      tags:
      - AI Agent Tasks
  /v1/ai/agents/tasks/{taskId}:
    delete:
      description: Permanently deletes an AI agent task. The task must not be in RUNNING
        status.
      operationId: deleteTask
      parameters:
      - in: path
        name: taskId
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "204":
          description: Task deleted successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request parameters
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Missing or invalid authentication token
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Insufficient permissions
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Task not found
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Cannot delete a running task
        "502":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Upstream service error
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Upstream service timeout
      summary: Delete an AI Agent Task
      tags:
      - AI Agent Tasks
    get:
      description: Returns the details of a specific AI agent task including its current
        status and pending decisions.
      operationId: getTask
      parameters:
      - in: path
        name: taskId
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "200":
          content:
            application/json:
              examples:
                Agent task details:
                  description: Example response for a successfully retrieved agent
                    task
                  value:
                    taskId: 550e8400-e29b-41d4-a716-446655440000
                    status: STOPPED
                    description: Build a pipeline to load sales data
                    createdAt: 2024-01-15T10:30:00Z
                    modifiedAt: 2024-01-15T10:45:00Z
                    agentConfig:
                      name: data_engineer_agent
                      mode: ACT
                      projectId: 550e8400-e29b-41d4-a716-446655440001
                      sourceBranchName: main
                      environmentName: development
                    grantedPermissions: []
                    pendingDecisions: []
              schema:
                $ref: "#/components/schemas/GetTaskResponse"
          description: Agent task retrieved successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request parameters
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Missing or invalid authentication token
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Insufficient permissions to retrieve the agent task
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Task not found
        "502":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Upstream service error
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Upstream service timeout
      summary: Get an AI Agent Task
      tags:
      - AI Agent Tasks
  /v1/ai/agents/tasks/{taskId}/decisions:
    post:
      description: Submits approval or question-answer decisions for a task that is
        awaiting human input.
      operationId: processDecisions
      parameters:
      - in: path
        name: taskId
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TaskDecisionsRequest"
        required: true
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProcessApprovalsResponse"
          description: Decisions submitted successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request body
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Missing or invalid authentication token
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Insufficient permissions
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Task not found
        "502":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Upstream service error
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Upstream service timeout
      summary: Submit Task Decisions
      tags:
      - AI Agent Tasks
  /v1/ai/agents/tasks/{taskId}/messages:
    get:
      description: Returns paginated events for a task. Use the nextCursor field to
        retrieve subsequent pages.
      operationId: getTaskMessages
      parameters:
      - in: path
        name: taskId
        required: true
        schema:
          type: string
          format: uuid
      - in: query
        name: limit
        required: false
        schema:
          type: integer
          format: int32
          default: 25
          maximum: 1000
      - in: query
        name: paginationToken
        required: false
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetTaskMessagesResponse"
          description: Task messages retrieved successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request parameters
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Missing or invalid authentication token
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Insufficient permissions to retrieve task messages
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Task not found
        "502":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Upstream service error
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Upstream service timeout
      summary: Get Task Messages
      tags:
      - AI Agent Tasks
    post:
      description: "Sends a follow-up message to a running or stopped task, resuming\
        \ agent execution."
      operationId: sendMessage
      parameters:
      - in: path
        name: taskId
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SendMessageRequest"
        required: true
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SendMessageResponse"
          description: Message sent successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request body
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Missing or invalid authentication token
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Insufficient permissions to send a message
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Task not found
        "502":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Upstream service error
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Upstream service timeout
      summary: Send a Message to a Task
      tags:
      - AI Agent Tasks
  /v1/ai/agents/tasks/{taskId}/permissions:
    put:
      description: Replaces the full set of granted tool permissions for a task. Pass
        an empty list to clear all permissions.
      operationId: setPermissions
      parameters:
      - in: path
        name: taskId
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SetPermissionsRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SetPermissionsResponse"
          description: Permissions updated successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request body
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Missing or invalid authentication token
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Insufficient permissions
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Task not found
        "502":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Upstream service error
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Upstream service timeout
      summary: Set Task Permissions
      tags:
      - AI Agent Tasks
  /v1/ai/agents/tasks/{taskId}/stop:
    post:
      description: Requests that a running task be stopped gracefully.
      operationId: stopTask
      parameters:
      - in: path
        name: taskId
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "204":
          description: Task stop request accepted
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Missing or invalid authentication token
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Insufficient permissions to stop the task
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Task not found
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Task is not in a running state
        "502":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Upstream service error
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Upstream service timeout
      summary: Stop an AI Agent Task
      tags:
      - AI Agent Tasks
  /v1/consumption:
    get:
      description: "Returns a breakdown of your credit consumption for flat-rated\
        \ products, grouped by calendar day (per UTC) and then by the type of consumption\
        \ and relevant dimensions. This data refreshes every three hours to reflect\
        \ recent credit usage."
      operationId: getConsumption
      parameters:
      - description: First calendar date to include in results (inclusive)
        example: 2024-11-01
        in: query
        name: consumedFrom
        required: true
        schema:
          type: string
          format: date
      - description: Calendar date before which results should be included (exclusive)
        example: 2024-12-01
        in: query
        name: consumedBefore
        required: true
        schema:
          type: string
          format: date
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Consumption"
          description: Successful
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Get a breakdown of your credit consumption for flat-rated products
      tags:
      - Consumption
  /v1/consumption/etl-users:
    get:
      description: "Returns the number of credits you have been charged for ETL Users\
        \ in a given period, and which users contributed charges. Because ETL Users\
        \ are metered on monthly active unique users, your `consumedFrom` and `consumedBefore`\
        \ parameters should reflect the period for a single monthly invoice. This\
        \ data refreshes every three hours to reflect recent credit usage."
      operationId: getEtlUsers
      parameters:
      - description: First date+time to include in results (inclusive)
        example: 2024-07-01T00:00:00.123Z
        in: query
        name: consumedFrom
        required: true
        schema:
          type: string
          format: date-time
      - description: Date+time before which results should be included (exclusive)
        example: 2024-07-31T00:00:00.123Z
        in: query
        name: consumedBefore
        required: true
        schema:
          type: string
          format: date-time
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EtlUsersConsumption"
          description: Successful
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Get a breakdown of your credit consumption for ETL Users
      tags:
      - Consumption
  /v1/custom-connectors:
    get:
      description: "Lists custom connector profiles for the requesting account, these\
        \ can be used to create resources where required"
      operationId: getCustomConnectors
      responses:
        "200":
          content:
            application/json:
              example: |2
                  {
                    "name": "connector-name",
                    "icon": 🔌,
                    "logo": {
                        "type": "URL",
                        "image": {
                            "url": "https://logo-location.svg"
                        }
                    },
                    "endpoints": [
                        {
                            "id": "40c12625-fe35-4d95-96ea-79f0eba3243c",
                            "name": "endpoint-name",
                            "url": "https://connector-url",
                            "httpMethod": "GET",
                            "auth": "BEARER",
                            "authTemplate": null,
                            "authenticationOptions": [
                                {
                                    "type": "BEARER",
                                    "parameters": [],
                                    "additionalParameters": null
                                }
                            ],
                            "paging": {
                                "type": "none"
                            },
                            "headerParameters": [],
                            "queryParameters": [],
                            "uriParameters": [],
                            "structure": {
                                "schema": {},
                                "containedInOuterArray": true,
                                "repeatingElementPath": []
                            },
                            "body": null
                        }
                    ],
                    "deleted": false,
                    "deletedTime": null,
                    "lastModified": "2023-11-17T11:42:11.678445Z"
                  },
          description: Custom connectors successfully returned
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Lists custom connector profiles for the requesting account
      tags:
      - Connectors
  /v1/directory-integration/scim/v2/Groups:
    get:
      description: Search for SCIM Groups with filtering and pagination
      operationId: findGroups
      parameters:
      - description: Filter query
        in: query
        name: filter
        required: false
        schema:
          type: string
      - description: Start index for pagination
        in: query
        name: startIndex
        required: false
        schema:
          type: integer
          format: int32
          default: 1
      - description: Number of results to return
        in: query
        name: count
        required: false
        schema:
          type: integer
          format: int32
          default: 100
      - description: Sort by field
        in: query
        name: sortBy
        required: false
        schema:
          type: string
      - description: Sort order
        in: query
        name: sortOrder
        required: false
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FilterResponse"
          description: Groups retrieved successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request parameters
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Search SCIM Groups
      tags:
      - Directory Integration
    post:
      description: Create a new SCIM Group
      operationId: createGroup
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ScimGroup"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EnhancedScimGroup"
          description: Group created successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Create SCIM Group
      tags:
      - Directory Integration
  /v1/directory-integration/scim/v2/Groups/{id}:
    delete:
      description: Delete a SCIM Group by ID
      operationId: deleteGroup
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "204":
          description: Group deleted successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Group not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Delete SCIM Group
      tags:
      - Directory Integration
    get:
      description: Retrieve a specific SCIM Group by ID
      operationId: getGroup
      parameters:
      - description: Group ID
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EnhancedScimGroup"
            application/scim+json:
              schema:
                $ref: "#/components/schemas/EnhancedScimGroup"
          description: Group retrieved successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Group not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Get SCIM Group
      tags:
      - Directory Integration
    patch:
      description: Partially update a SCIM Group by ID
      operationId: patchGroup
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PatchOp"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EnhancedScimGroup"
          description: Group patched successfully
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EnhancedScimGroup"
            application/scim+json:
              schema:
                $ref: "#/components/schemas/EnhancedScimGroup"
          description: Group patched successfully with no content returned
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Group not found
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Conflict occurred
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Patch SCIM Group
      tags:
      - Directory Integration
    put:
      description: Update a SCIM Group by ID
      operationId: updateGroup
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ScimGroup"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EnhancedScimGroup"
          description: Group updated successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Group not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Update SCIM Group
      tags:
      - Directory Integration
  /v1/directory-integration/scim/v2/ResourceTypes:
    get:
      description: Returns a list of all supported SCIM resource types
      operationId: getResourceTypes
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
            application/scim+json:
              schema:
                type: object
                additionalProperties: {}
          description: SCIM Resource Types retrieved
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Get SCIM Resource Types
      tags:
      - Directory Integration
  /v1/directory-integration/scim/v2/Schemas:
    get:
      description: Returns a list of all supported SCIM schemas
      operationId: getSchemas
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
            application/scim+json:
              schema:
                type: object
                additionalProperties: {}
          description: SCIM Schemas retrieved
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Get SCIM Schemas
      tags:
      - Directory Integration
  /v1/directory-integration/scim/v2/ServiceProviderConfig:
    get:
      description: Returns the Service Provider Configuration which describes the
        SCIM service provider's features and configuration
      operationId: getServiceProviderConfig
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
            application/scim+json:
              schema:
                type: object
                additionalProperties: {}
          description: Service Provider Configuration retrieved
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Get SCIM Service Provider Configuration
      tags:
      - Directory Integration
  /v1/directory-integration/scim/v2/Users:
    get:
      description: Search for SCIM Users with filtering and pagination
      operationId: searchUsers
      parameters:
      - description: Filter query
        in: query
        name: filter
        required: false
        schema:
          type: string
      - description: Start index for pagination
        in: query
        name: startIndex
        required: false
        schema:
          type: integer
          format: int32
          default: 1
      - description: Number of results to return
        in: query
        name: count
        required: false
        schema:
          type: integer
          format: int32
          default: 100
      - description: Sort by field
        in: query
        name: sortBy
        required: false
        schema:
          type: string
      - description: Sort order
        in: query
        name: sortOrder
        required: false
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FilterResponse"
          description: Users retrieved successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request parameters
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Search SCIM Users
      tags:
      - Directory Integration
    post:
      description: Create a new SCIM User
      operationId: createUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ScimUser"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScimUser"
          description: User created successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Create SCIM User
      tags:
      - Directory Integration
  /v1/directory-integration/scim/v2/Users/{id}:
    delete:
      description: Delete a SCIM User by ID
      operationId: deleteUser
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "204":
          description: User deleted successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: User not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Delete SCIM User
      tags:
      - Directory Integration
    get:
      description: Retrieve a specific SCIM User by ID
      operationId: getUser
      parameters:
      - description: User ID
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScimUser"
            application/scim+json:
              schema:
                $ref: "#/components/schemas/ScimUser"
          description: User retrieved successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: User not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Get SCIM User
      tags:
      - Directory Integration
    patch:
      description: Partially update a SCIM User by ID
      operationId: patchUser
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PatchOp"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScimUser"
          description: User patched successfully
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScimUser"
            application/scim+json:
              schema:
                $ref: "#/components/schemas/ScimUser"
          description: User patched successfully with no content returned
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: User not found
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Conflict occurred
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Patch SCIM User
      tags:
      - Directory Integration
    put:
      description: Update a SCIM User by ID
      operationId: updateUser
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ScimUser"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScimUser"
          description: User updated successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: User not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Update SCIM User
      tags:
      - Directory Integration
  /v1/events:
    get:
      description: An endpoint for retrieving audit events in a time range
      operationId: retrieve
      parameters:
      - description: |
          The earliest date and time of audit events to retrieve.
          The date time format should be in ISO 8601 format, e.g.: 2025-02-20T07:15:15.000-01:00
        example: 2021-11-17T07:15:15.000-07:00
        in: query
        name: from
        required: true
        schema:
          type: string
          format: date-time
          description: |
            The earliest date and time of audit events to retrieve.
            The date time format should be in ISO 8601 format, e.g.: 2025-02-20T07:15:15.000-01:00
          example: 2021-11-17T07:15:15.000-07:00
      - description: |
          The latest date and time of audit events to retrieve.
          The date time format should be in ISO 8601 format, e.g.: 2025-02-21T07:15:15.000-01:00
        example: 2021-11-17T08:15:15.000-07:00
        in: query
        name: to
        required: true
        schema:
          type: string
          format: date-time
          description: |
            The latest date and time of audit events to retrieve.
            The date time format should be in ISO 8601 format, e.g.: 2025-02-21T07:15:15.000-01:00
          example: 2021-11-17T08:15:15.000-07:00
      - description: Page number (0-indexed)
        example: "0"
        in: query
        name: page
        schema: {}
      - description: Number of records per page (from 1 to 100)
        example: "25"
        in: query
        name: size
        schema: {}
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedResultListAugmentedAuditEventResponse"
          description: Audit logs have been retrieved
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Query audit events in a time range
      tags:
      - Audit Events
  /v1/flex-connectors:
    get:
      description: "Lists flex connector profiles, these can be used to create resources\
        \ where required"
      operationId: getFlexConnectors
      responses:
        "200":
          content:
            application/json:
              example: |2
                  {
                    "name": "connector-name",
                    "icon": 🔌,
                    "logo": {
                        "type": "URL",
                        "image": {
                            "url": "https://logo-location.svg"
                        }
                    },
                    "endpoints": [
                        {
                            "id": "40c12625-fe35-4d95-96ea-79f0eba3243c",
                            "name": "endpoint-name",
                            "url": "https://connector-url",
                            "httpMethod": "GET",
                            "auth": "BEARER",
                            "authTemplate": null,
                            "authenticationOptions": [
                                {
                                    "type": "BEARER",
                                    "parameters": [],
                                    "additionalParameters": null
                                }
                            ],
                            "paging": {
                                "type": "none"
                            },
                            "headerParameters": [],
                            "queryParameters": [],
                            "uriParameters": [],
                            "structure": {
                                "schema": {},
                                "containedInOuterArray": true,
                                "repeatingElementPath": []
                            },
                            "body": null
                        }
                    ],
                    "deleted": false,
                    "deletedTime": null,
                    "lastModified": "2023-11-17T11:42:11.678445Z"
                  },
          description: Flex connectors successfully returned
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Lists flex connector profiles
      tags:
      - Connectors
  /v1/lineage/events:
    get:
      description: "Retrieves OpenLineage events in standard OpenLineage format. Events\
        \ are returned in chronological order within the specified date range and\
        \ include complete lineage information such as job runs, datasets, and transformations.\
        \ The date range must be valid (generatedFrom must be before generatedBefore).\
        \ Use pagination to handle large result sets efficiently."
      operationId: get-lineage-events
      parameters:
      - description: Include events generated from this datetime (inclusive). Must
          be before generatedBefore.
        example: 2025-01-01T00:00:00Z
        in: query
        name: generatedFrom
        required: true
        schema:
          type: string
          format: date-time
      - description: Include events generated before this datetime (exclusive). Must
          be after generatedFrom.
        example: 2025-01-02T00:00:00Z
        in: query
        name: generatedBefore
        required: true
        schema:
          type: string
          format: date-time
      - description: Page number for pagination (0-indexed). Must be 0 or greater.
        example: 0
        in: query
        name: page
        required: true
        schema:
          type: integer
          format: int32
      - description: Number of records per page. Must be between 1 and 100 inclusive.
        example: 25
        in: query
        name: size
        required: false
        schema:
          type: integer
          format: int32
          default: 100
      responses:
        "200":
          content:
            application/json:
              examples:
                Lineage Events Response:
                  description: Lineage Events Response
                  value:
                    page: 0
                    size: 1
                    total: 1
                    results:
                    - id: 12345678-1234-1234-1234-123456789012
                      event:
                        eventType: RUNNING
                        eventTime: 2025-10-13T09:12:10.741934604Z
                        producer: https://www.matillion.com
                        schemaURL: https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunEvent
                        job:
                          namespace: matillion://<account-id>.<project-id>
                          name: path/to/data-pipeline.orch.yaml
                          facets:
                            jobType:
                              jobType: ORCHESTRATION
                              integration: MATILLION
                              processingType: BATCH
                              _producer: https://www.matillion.com
                              _schemaURL: https://openlineage.io/spec/facets/2-0-3/JobTypeJobFacet.json#/$defs/JobTypeJobFacet
                            documentation: null
                            sourceCode: null
                            sourceCodeLocation: null
                            sql: null
                            ownership: null
                        run:
                          runId: 9876543210-abcd-1234-efgh-567890123456
                          facets: null
                        inputs:
                        - namespace: postgresql://postgres-host.example.com:5432
                          name: source_schema.source_table
                          facets:
                            schema:
                              fields:
                              - name: int_field
                                type: INTEGER
                                description: null
                              - name: varchar_255
                                type: VARCHAR
                                description: null
                              - name: bool_field
                                type: BOOLEAN
                                description: null
                              _producer: https://www.matillion.com
                              _schemaURL: https://openlineage.io/spec/facets/1-1-1/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet
                            dataSource: null
                            columnLineage: null
                          inputFacets: null
                        outputs:
                        - namespace: snowflake://account-name.region
                          name: TARGET_DATABASE.TARGET_SCHEMA.TARGET_TABLE
                          facets:
                            schema:
                              fields:
                              - name: int_field
                                type: NUMBER
                                description: null
                              - name: varchar_255
                                type: VARCHAR(16777216)
                                description: null
                              - name: bool_field
                                type: BOOLEAN
                                description: null
                              _producer: https://www.matillion.com
                              _schemaURL: https://openlineage.io/spec/facets/1-1-1/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet
                            columnLineage:
                              fields:
                                int_field:
                                  inputFields:
                                  - namespace: postgresql://postgres-host.example.com:5432
                                    name: source_schema.source_table
                                    field: int_field
                                varchar_255:
                                  inputFields:
                                  - namespace: postgresql://postgres-host.example.com:5432
                                    name: source_schema.source_table
                                    field: varchar_255
                              _producer: https://www.matillion.com
                              _schemaURL: https://openlineage.io/spec/facets/1-2-0/ColumnLineageDatasetFacet.json#/$defs/ColumnLineageDatasetFacet
                          outputFacets: null
              schema:
                $ref: "#/components/schemas/PagedResultList"
          description: Successfully retrieved lineage events
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: "Invalid request parameters (e.g., invalid date range, invalid\
            \ pagination parameters)"
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Access forbidden - user does not have permission to access
            this account
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Data governance resource not found for the requested parameters
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Internal server error
      summary: Get OpenLineage events for a specified time period
      tags:
      - Data Lineage
  /v1/pipeline-executions:
    get:
      description: "This returns a list of summarised pipeline executions.The list\
        \ is ordered by the start time of the execution, with the most recent execution\
        \ first. It can be paginated by providing a `paginationToken` query parameter\
        \ obtained from a previous response."
      operationId: getPipelineExecutions
      parameters:
      - description: Filter results to pipelines belonging to this project.
        in: query
        name: projectId
        required: false
        schema:
          type: string
      - description: Token to fetch the next batch of results for a previous query.
        in: query
        name: paginationToken
        required: false
        schema:
          type: string
      - description: The maximum number of results to return (capped at 100).
        in: query
        name: limit
        required: false
        schema:
          type: integer
          format: int32
          default: 25
      - description: "Search against pipeline name, with case-insensitive partial\
          \ matching."
        in: query
        name: pipelineName
        required: false
        schema:
          type: string
      - description: Filter results to pipelines executed within this environment.
        in: query
        name: environmentName
        required: false
        schema:
          type: string
      - description: Filter results to pipelines started at or after this moment.
        example: 2021-01-01T00:00:00Z
        in: query
        name: startedAfter
        required: false
        schema:
          type: string
          format: date-time
      - description: Filter results to pipelines started at or before this moment.
        example: 2021-01-01T00:00:00Z
        in: query
        name: startedBefore
        required: false
        schema:
          type: string
          format: date-time
      - description: "Filter results to pipelines that started within this time frame,\
          \ relative to now. Accepts an ISO-8601 duration string in the `PnDTnHnMnS`\
          \ format, using days, hours, minutes and/or seconds, e.g. `P1D`, `P7D`,\
          \ `PT1H`, `PT30M`, `PT90S`. Week, month and year units (`P1W`, `P1M`, `P1Y`)\
          \ are not supported — use the day-based equivalents `P7D`, `P30D` and `P365D`\
          \ instead."
        examples:
          "1. Past day":
            description: 1. Past day
            value: P1D
          "2. Past 1 day and 6 hours":
            description: 2. Past 1 day and 6 hours
            value: P1DT6H
          "3. Past week (7 days)":
            description: 3. Past week (7 days)
            value: P7D
          "4. Past month (30 days)":
            description: 4. Past month (30 days)
            value: P30D
          "5. Past hour":
            description: 5. Past hour
            value: PT1H
          "6. Past 30 minutes":
            description: 6. Past 30 minutes
            value: PT30M
          "7. Past 90 seconds":
            description: 7. Past 90 seconds
            value: PT90S
        in: query
        name: timeFrame
        required: false
        schema:
          type: string
      - description: Filter results to pipelines which have the status of one of the
          provided values.
        in: query
        name: status
        required: false
        schema:
          type: string
          enum:
          - RUNNING
          - SUCCESS
          - FAILED
          - CANCELLING
          - CANCELLED
          - FORBIDDEN
          - SKIPPED
          - UNKNOWN
      - description: Filter results to pipelines belonging to this schedule.
        in: query
        name: scheduleId
        required: false
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScrollResultListPipelineExecution"
          description: Pipelines executions returned successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "503":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Service Unavailable
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Pipeline Executions
      tags:
      - Pipeline Execution
  /v1/projects:
    get:
      description: An endpoint for listing projects.
      operationId: getAll
      parameters:
      - description: Page number (0-indexed)
        example: "0"
        in: query
        name: page
        schema: {}
      - description: Number of records per page (from 1 to 100)
        example: "25"
        in: query
        name: size
        schema: {}
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedResultListProjectSummary"
          description: Projects have been retrieved
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: List All Projects
      tags:
      - Projects
    post:
      description: An endpoint for creating a new project
      operationId: create
      requestBody:
        content:
          application/json:
            examples:
              Full SaaS Agent on Databricks:
                description: Full SaaS Agent on Databricks
                value:
                  name: project-name
                  description: A Databricks project
                  warehouse: DATABRICKS
                  agentDeploymentType: FULL_SAAS
              Full SaaS Agent on Snowflake:
                description: Full SaaS Agent on Snowflake
                value:
                  name: project-name
                  description: A project created through the Matillion API
                  warehouse: Snowflake
                  agentDeploymentType: FULL_SAAS
              Hybrid Agent on BigQuery:
                description: Hybrid Agent on BigQuery
                value:
                  name: project-name
                  description: A project created through the Matillion API
                  warehouse: BIGQUERY
                  agentDeploymentType: HYBRID
              Hybrid Agent on Databricks:
                description: Hybrid Agent on Databricks
                value:
                  name: project-name
                  description: A Databricks project
                  warehouse: DATABRICKS
                  agentDeploymentType: HYBRID
              Hybrid Agent on Redshift:
                description: Hybrid Agent on Redshift
                value:
                  name: project-name
                  description: A project created through the Matillion API
                  warehouse: REDSHIFT
                  agentDeploymentType: HYBRID
              Hybrid Agent on Snowflake:
                description: Hybrid Agent on Snowflake
                value:
                  name: project-name
                  description: A project created through the Matillion API
                  warehouse: SNOWFLAKE
                  agentDeploymentType: HYBRID
            schema:
              $ref: "#/components/schemas/CreateProjectRequest"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateProjectResponse"
          description: Project created
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Name needs to be unique
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Create a new project
      tags:
      - Projects
  /v1/projects/{projectId}:
    delete:
      description: Delete a project
      operationId: deleteById
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "204":
          description: Project has been deleted
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: An endpoint to delete a project by UUID
      tags:
      - Projects
  /v1/projects/{projectId}/artifacts:
    get:
      description: An endpoint for getting artifacts for a given environment
      operationId: getArtifacts
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
      - in: query
        name: environmentName
        required: true
        schema:
          type: string
      - in: query
        name: enabledOnly
        required: false
        schema:
          type: boolean
          default: true
      - description: Page number (0-indexed)
        example: "0"
        in: query
        name: page
        schema: {}
      - description: Number of records per page (from 1 to 100)
        example: "25"
        in: query
        name: size
        schema: {}
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedResultListArtifactDetails"
          description: Artifact details retrieved
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Get a list of Artifacts
      tags:
      - Artifacts
    patch:
      description: An endpoint to enable or disable an artifact
      operationId: disableArtifact
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            examples:
              Artifact disable/enable patch request:
                description: Artifact disable/enable patch request
                value:
                  environmentName: Dev
                  versionName: 1.2.0
                  enabled: false
            schema:
              $ref: "#/components/schemas/ArtifactEnabledRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArtifactEnabledResponse"
          description: Artifact enabled/disabled successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Artifact version name not found to enable/disable
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Flags an artifact to enable or disable
      tags:
      - Artifacts
    post:
      description: An endpoint to create an artifact
      operationId: createArtifacts
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - in: header
        name: content-type
        required: true
        schema:
          type: string
      - in: header
        name: versionName
        required: true
        schema:
          type: string
      - in: header
        name: environmentName
        required: true
        schema:
          type: string
      - in: header
        name: commitHash
        required: false
        schema:
          type: string
      - in: header
        name: branch
        required: false
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            encoding:
              filename-including-path:
                contentType: "application/json, text/plain, text/markdown, text/html,\
                  \ text/yaml, application/vnd.matillion.dpl+yaml"
            schema:
              properties:
                filename-including-path:
                  format: binary
        description: |-
          To create an artifact a MultiPart form data body is required.

          The request should contain all the assets(files) within your Data Productivity Cloud project.

          Each asset will need to set the multipart name as the full relative path of the asset including the asset name.
          Each asset will also require a text/plain content type header to be set. Currently only text files are supported.
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArtifactResponse"
          description: Created artifact successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "415":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unsupported media type
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Create an Artifact
      tags:
      - Artifacts
  /v1/projects/{projectId}/artifacts/details:
    get:
      description: An endpoint for getting artifact by a given version name
      operationId: getArtifactByVersionName
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
      - in: query
        name: versionName
        required: false
        schema:
          type: string
      - in: query
        name: environmentName
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArtifactDetailsWithAssets"
          description: Artifact details retrieved
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Artifact not Found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Get Artifact by a given version name
      tags:
      - Artifacts
  /v1/projects/{projectId}/artifacts/promotions:
    post:
      description: An endpoint to promote artifact from one environment to another
      operationId: promoteArtifact
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ArtifactPromotionRequest"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArtifactPromotionResponse"
          description: Artifact promoted successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Artifact version name not found to promote
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Artifact version name conflicts. Already promoted to target
            environment
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Promotes Artifact
      tags:
      - Artifacts
  /v1/projects/{projectId}/connections:
    delete:
      operationId: deleteProjectConnectionByName
      parameters:
      - description: The unique identifier of the project from which the project connection
          will be deleted
        example: 550e8400-e29b-41d4-a716-446655440002
        in: path
        name: projectId
        required: true
        schema:
          type: string
          pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      - description: A name of the project connection which needs to be deleted.
        example: myConnection
        in: query
        name: connectionName
        required: true
        schema:
          type: string
      responses:
        "204":
          description: Successfully deleted the project connection
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Connection not found
      summary: Deleting a project connection by name.
      tags:
      - Connections
    get:
      operationId: getProjectConnections
      parameters:
      - description: The unique identifier of the project where the connection will
          be created
        example: 550e8400-e29b-41d4-a716-446655440002
        in: path
        name: projectId
        required: true
        schema:
          type: string
          pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      - description: "A comma separated list of auth providers. If specified alongside\
          \ 'platformConnectionType', they act as an AND filter, so only connections\
          \ that match one of the specified platform connection types and one of the\
          \ specified providers will be returned."
        example: ssh
        in: query
        name: authProvider
        required: false
        schema:
          type: array
          items:
            type: string
          uniqueItems: true
      - description: "   Comma-separated list of connection names whose overrides\
          \ are to be deleted from this environment. \n   Its important to note that\
          \ specifying too many connection names may exceed URL length limits and\
          \ result in a 400 Bad Request response. \n   Consider splitting large deletions\
          \ into multiple requests.\n"
        example: "myConnection,anotherConnection"
        in: query
        name: connectionNames
        required: false
        schema:
          type: array
          items:
            type: string
          uniqueItems: true
      - description: Page number (0-indexed)
        example: "0"
        in: query
        name: page
        schema: {}
      - description: Number of records per page (from 1 to 100)
        example: "25"
        in: query
        name: size
        schema: {}
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectConnectionResponse"
          description: Successfully retrieved connection
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: |2
              Invalid request parameters.
              This can occur when specifying too many connection names or when the total URL length exceeds server limits.
              Consider reducing the number of connections in a single request or splitting into multiple requests.
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Connection not found
      summary: "Retrieve a page of project connections, optionally filtered by parameters."
      tags:
      - Connections
    post:
      description: |
        Creates a new connection within the specified project. Where a connection requires sensitive information such as a password or authorisation code, that must be created in the relevant secret vault prior to creating a connection. The name of that secret (and, where relevant, key within the secret) is then passed as part of the connection configuration.

        For an example of how to use this endpoint as part of automating the provisioning and management of projects, see https://docs.maia.ai/docs/api-reference/provisioning-a-project
      operationId: createProjectConnection
      parameters:
      - description: The unique identifier of the project where the connection will
          be created
        example: 550e8400-e29b-41d4-a716-446655440002
        in: path
        name: projectId
        required: true
        schema:
          type: string
          pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      requestBody:
        content:
          application/json:
            examples:
              CLOUD_PLATFORM_CREDENTIALS Connection:
                description: Creates a connection that gives the project access to
                  AWS using a credentials secret stored in AWS Secrets Manager. Use
                  `azure` or `gcp` for `authProvider` to connect to the other cloud
                  providers.
                value:
                  name: my-aws-connection
                  platformConnectionType: CLOUD_PLATFORM_CREDENTIALS
                  authProvider: aws
                  authType: CLOUD_PROVIDER_SECRET
                  connectionDetails:
                    description: AWS credentials for the analytics environment
                    secretsLocation:
                      type: AWS_SECRET_MANAGER
                      region: us-east-1
                    connectionProperties:
                      credentialSecretName: aws-platform-credentials
              COMPONENT_BASIC Connection:
                description: Example request for creating a COMPONENT_BASIC connection
                value:
                  name: my-database-connection
                  platformConnectionType: COMPONENT_BASIC
                  authProvider: NONE
                  authType: GENERIC_SECRET
                  connectionDetails:
                    description: Production database connection for analytics
                    secretsLocation:
                      type: AWS_SECRET_MANAGER
                      region: us-east-1
                    connectionProperties:
                      secretName: db-credentials
                      secretKey: password
              COMPONENT_BASIC pointing at OAuth Secret:
                description: Creates a connection that uses an OAuth client-credentials
                  secret. `authType` is set to `OAUTH_CLIENT_CRED` to match the kind
                  of secret being referenced. Use `OAUTH_USER_TOKENS` or `OAUTH_AUTHORIZATION_CODE`
                  for the other OAuth flows.
                value:
                  name: powerbi-cc-connection
                  platformConnectionType: COMPONENT_BASIC
                  authProvider: powerbi-custom-connector
                  authType: OAUTH_CLIENT_CRED
                  connectionDetails:
                    description: Power BI custom connector OAuth client credentials
                    secretsLocation:
                      type: AWS_SECRET_MANAGER
                      region: eu-west-1
                    connectionProperties:
                      secretName: powerbi-oauth-creds
              COMPONENT_BASIC with Default Vault:
                description: Example request using the account's default vault location
                value:
                  name: simple-connection
                  platformConnectionType: COMPONENT_BASIC
                  authProvider: NONE
                  authType: GENERIC_SECRET
                  connectionDetails:
                    secretsLocation:
                      type: DEFAULT_SECRET_VAULT
                    connectionProperties:
                      secretName: google-cloud-credentials
            schema:
              $ref: "#/components/schemas/CreateConnectionRequest"
        description: |
          The parameters platformConnectionType, authProvider and authType are inter-dependent. The valid combinations are:

          | platformConnectionType | authProvider | authType | Use this for |
          |---|---|---|---|
          | COMPONENT_BASIC | NONE | GENERIC_SECRET | Creating simple secret definitions |
          | COMPONENT_BASIC | _(connector name e.g. `salesforce`)_ | OAUTH_CLIENT_CRED, OAUTH_USER_TOKENS, OAUTH_AUTHORIZATION_CODE | OAuth secrets stored for the named provider |
          | COMPONENT_BASIC | `netsuite` | COMPOSITE_TOKEN | Creating NetSuite composite-token secrets |
          | COMPONENT_BASIC | `x-ads` | OAUTH_1_0_X_ADS | Creating X Ads OAuth 1.0 secrets |
          | CLOUD_PLATFORM_CREDENTIALS | aws | CLOUD_PROVIDER_SECRET | Creating AWS cloud credentials |
          | CLOUD_PLATFORM_CREDENTIALS | gcp | CLOUD_PROVIDER_SECRET | Creating GCP cloud credentials |
          | CLOUD_PLATFORM_CREDENTIALS | azure | CLOUD_PROVIDER_SECRET | Creating AZURE cloud credentials |
        required: true
      responses:
        "201":
          content:
            application/json:
              examples:
                CLOUD_PLATFORM_CREDENTIALS Connection Response:
                  description: A successfully created CLOUD_PLATFORM_CREDENTIALS connection
                    that gives the project access to AWS using credentials stored
                    in AWS Secrets Manager.
                  value:
                    id: 550e8400-e29b-41d4-a716-446655440010
                    name: my-aws-connection
                    platformConnectionType: CLOUD_PLATFORM_CREDENTIALS
                    authProvider: aws
                    authType: CLOUD_PROVIDER_SECRET
                    createdBy: 550e8400-e29b-41d4-a716-446655440001
                    createdDate: 2024-01-15T10:30:00.123456
                    projectId: 550e8400-e29b-41d4-a716-446655440002
                    connectionDetails:
                      description: AWS credentials for the analytics environment
                      secretsLocation:
                        type: AWS_SECRET_MANAGER
                        region: us-east-1
                      connectionProperties:
                        credentialSecretName: aws-platform-credentials
                COMPONENT_BASIC Connection Response:
                  description: Example response for a successfully created COMPONENT_BASIC
                    connection
                  value:
                    id: 550e8400-e29b-41d4-a716-446655440000
                    name: my-database-connection
                    platformConnectionType: COMPONENT_BASIC
                    authProvider: NONE
                    authType: GENERIC_SECRET
                    createdBy: 550e8400-e29b-41d4-a716-446655440001
                    createdDate: 2024-01-15T10:30:00.123456
                    projectId: 550e8400-e29b-41d4-a716-446655440002
                    connectionDetails:
                      description: Production database connection for analytics
                      secretsLocation:
                        type: AWS_SECRET_MANAGER
                        region: us-east-1
                      connectionProperties:
                        secretName: db-credentials
                        secretKey: password
              schema:
                $ref: "#/components/schemas/ProjectConnectionResponse"
          description: Connection created successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Connection name needs to be unique in the project.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Create a new project connection
      tags:
      - Connections
    put:
      description: Performs a full replacement of the connection details. Any fields
        not included in the update request will be unset.
      operationId: updateProjectConnectionByName
      parameters:
      - description: The unique identifier of the project containing the connection
          to update.
        example: 550e8400-e29b-41d4-a716-446655440002
        in: path
        name: projectId
        required: true
        schema:
          type: string
          pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      - description: The name of the connection to update.
        example: myConnection
        in: query
        name: connectionName
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateConnectionRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectConnectionResponse"
          description: Successfully updated the project connection
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Connection not found
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unprocessable Entity
      summary: Update an existing project connection by name.
      tags:
      - Connections
  /v1/projects/{projectId}/connections/environment-overrides:
    delete:
      description: Delete environment connection overrides by environment name and
        connection names
      operationId: deleteEnvironmentConnectionOverrides
      parameters:
      - description: The unique identifier of the project from which the environment
          connection overrides will be deleted
        example: 550e8400-e29b-41d4-a716-446655440002
        in: path
        name: projectId
        required: true
        schema:
          type: string
          pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      - description: "Name of the environment for which the overrides need to be deleted.\
          \ Note: Large numbers of connection names may result in URL length limits\
          \ being exceeded, causing a 400 Bad Request response."
        example: myEnv
        in: query
        name: environmentName
        required: true
        schema:
          type: string
          minLength: 1
      - description: |
          Comma-separated list of connection names whose overrides are to be deleted from this environment.
          It's important to note that specifying too many connection names may exceed URL length limits and result in a 400 Bad Request response.
          Consider splitting large deletions into multiple requests.
        example: "connection1,connection2,connection3"
        in: query
        name: connectionNames
        required: true
        schema:
          type: array
          items:
            type: string
          uniqueItems: true
      responses:
        "204":
          description: Environment connection overrides successfully deleted
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: |2
              Invalid request parameters.
              This can occur when specifying too many connection names or when the total URL length exceeds server limits.
              Consider reducing the number of connections in a single request or splitting into multiple requests.
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: "Project, environment, or connection not found"
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Internal server error
      summary: Delete environment connection overrides
      tags:
      - Connections
    get:
      operationId: getEnvironmentOverrides
      parameters:
      - description: The unique identifier of the project for which the connections
          will be listed.
        example: 550e8400-e29b-41d4-a716-446655440002
        in: path
        name: projectId
        required: true
        schema:
          type: string
          pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      - description: The name of the environment to list which connection overrides
          are applied in.
        example: dev
        in: query
        name: environmentName
        required: true
        schema:
          type: string
          minLength: 1
      - description: Page number (0-indexed)
        example: "0"
        in: query
        name: page
        schema: {}
      - description: Number of records per page (from 1 to 100)
        example: "25"
        in: query
        name: size
        schema: {}
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EnvironmentConnectionOverrideResponse"
          description: Successfully retrieved connection
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Connection not found
      summary: Retrieve a page of connection overrides which apply in a specific environment.
      tags:
      - Connections
    post:
      description: "Creates a new environment-specific override for an existing project\
        \ connection. If the override already exists, a 409 Conflict is returned.\
        \ Use the PUT endpoint to update an existing override. The override's connection\
        \ type is determined by the parent project connection."
      operationId: createEnvironmentOverride
      parameters:
      - description: The unique identifier of the project containing the connection
        example: 550e8400-e29b-41d4-a716-446655440002
        in: path
        name: projectId
        required: true
        schema:
          type: string
          pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      requestBody:
        content:
          application/json:
            examples:
              CLOUD_PLATFORM_CREDENTIALS Environment Override:
                description: Overrides a cloud credentials connection in the PROD
                  environment to use a production-specific AWS credentials secret.
                value:
                  environmentName: PROD
                  connectionName: my-aws-connection
                  authType: CLOUD_PROVIDER_SECRET
                  connectionOverrides:
                    secretsLocation:
                      type: AWS_SECRET_MANAGER
                      region: us-east-1
                    connectionProperties:
                      credentialSecretName: prod-aws-platform-credentials
              COMPONENT_BASIC Environment Override:
                description: Example request for creating an environment override
                  with AWS Secrets Manager
                value:
                  environmentName: PROD
                  connectionName: Salesforce
                  authType: GENERIC_SECRET
                  connectionOverrides:
                    secretsLocation:
                      type: AWS_SECRET_MANAGER
                      region: us-east-1
                    connectionProperties:
                      secretName: prod-salesforce-credentials
                      secretKey: apiKey
              Override pointing at OAuth Secret:
                description: Example request overriding a connection in the PROD environment
                  to point at an OAuth-typed secret stored in the customer's vault.
                  authType should match the parent project connection's auth type.
                value:
                  environmentName: PROD
                  connectionName: powerbi-cc-connection
                  authType: OAUTH_CLIENT_CRED
                  connectionOverrides:
                    secretsLocation:
                      type: AWS_SECRET_MANAGER
                      region: eu-west-1
                    connectionProperties:
                      secretName: powerbi-oauth-creds-prod
              Override with Default Vault:
                description: Example request using the default vault location configured
                  on the agent
                value:
                  environmentName: dev
                  connectionName: Salesforce
                  authType: GENERIC_SECRET
                  connectionOverrides:
                    connectionProperties:
                      secretName: dev-credentials
            schema:
              $ref: "#/components/schemas/CreateEnvironmentOverrideRequest"
        description: |
          Create a new environment connection override. Returns 409 Conflict if the override already exists — use the PUT endpoint to update.

          Provide `environmentName` and `connectionName` to identify the override, plus the type-specific fields inside `connectionOverrides`.
          The combinations of `platformConnectionType`, `authProvider` and `authType` follow the same rules as the main create-connection request — see the combinations table on `POST /v1/projects/{projectId}/connections`.
        required: true
      responses:
        "201":
          content:
            application/json:
              examples:
                CLOUD_PLATFORM_CREDENTIALS Environment Override Response:
                  description: A successfully created override that swaps in a production
                    AWS credentials secret for the PROD environment.
                  value:
                    name: my-aws-connection
                    platformConnectionType: CLOUD_PLATFORM_CREDENTIALS
                    authProvider: aws
                    authType: CLOUD_PROVIDER_SECRET
                    createdBy: 550e8400-e29b-41d4-a716-446655440001
                    createdDate: 2024-01-15T10:30:00.123456
                    projectId: 550e8400-e29b-41d4-a716-446655440002
                    connectionOverrides:
                      secretsLocation:
                        type: AWS_SECRET_MANAGER
                        region: us-east-1
                      connectionProperties:
                        credentialSecretName: prod-aws-platform-credentials
                COMPONENT_BASIC Environment Override Response:
                  description: Example response for a successfully created environment
                    connection override
                  value:
                    name: Salesforce
                    platformConnectionType: COMPONENT_BASIC
                    authProvider: NONE
                    authType: GENERIC_SECRET
                    createdBy: 550e8400-e29b-41d4-a716-446655440001
                    createdDate: 2024-01-15T10:30:00.123456
                    projectId: 550e8400-e29b-41d4-a716-446655440002
                    connectionOverrides:
                      secretsLocation:
                        type: AWS_SECRET_MANAGER
                        region: us-east-1
                      connectionProperties:
                        secretName: prod-salesforce-credentials
                        secretKey: apiKey
              schema:
                $ref: "#/components/schemas/EnvironmentConnectionOverrideResponse"
          description: Environment connection override created successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: An environment connection override already exists for this
            connection and environment
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Create an environment connection override
      tags:
      - Connections
    put:
      description: Updates an existing environment-specific connection override. The
        override must already exist — returns 404 if it does not. Use the POST endpoint
        to create a new override. The override's connection type is determined by
        the parent project connection.
      operationId: updateEnvironmentOverride
      parameters:
      - description: The unique identifier of the project containing the connection
        example: 550e8400-e29b-41d4-a716-446655440002
        in: path
        name: projectId
        required: true
        schema:
          type: string
          pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      requestBody:
        content:
          application/json:
            examples:
              CLOUD_PLATFORM_CREDENTIALS Environment Override:
                description: Overrides a cloud credentials connection in the PROD
                  environment to use a production-specific AWS credentials secret.
                value:
                  environmentName: PROD
                  connectionName: my-aws-connection
                  authType: CLOUD_PROVIDER_SECRET
                  connectionOverrides:
                    secretsLocation:
                      type: AWS_SECRET_MANAGER
                      region: us-east-1
                    connectionProperties:
                      credentialSecretName: prod-aws-platform-credentials
              COMPONENT_BASIC Environment Override:
                description: Example request for updating an environment override
                  with AWS Secrets Manager
                value:
                  environmentName: PROD
                  connectionName: Salesforce
                  authType: GENERIC_SECRET
                  connectionOverrides:
                    secretsLocation:
                      type: AWS_SECRET_MANAGER
                      region: us-east-1
                    connectionProperties:
                      secretName: prod-salesforce-credentials
                      secretKey: apiKey
              Override pointing at OAuth Secret:
                description: Example request overriding a connection in the PROD environment
                  to point at an OAuth-typed secret stored in the customer's vault.
                  authType should match the parent project connection's auth type.
                value:
                  environmentName: PROD
                  connectionName: powerbi-cc-connection
                  authType: OAUTH_CLIENT_CRED
                  connectionOverrides:
                    secretsLocation:
                      type: AWS_SECRET_MANAGER
                      region: eu-west-1
                    connectionProperties:
                      secretName: powerbi-oauth-creds-prod
              Override with Default Vault:
                description: Example request using the default vault location configured
                  on the agent
                value:
                  environmentName: dev
                  connectionName: Salesforce
                  authType: GENERIC_SECRET
                  connectionOverrides:
                    connectionProperties:
                      secretName: dev-credentials
            schema:
              $ref: "#/components/schemas/CreateEnvironmentOverrideRequest"
        description: |
          Update an existing environment connection override. The override must already exist — returns 404 if it does not.

          Provide `environmentName` and `connectionName` to identify the override, plus the type-specific fields inside `connectionOverrides`.
          The combinations of `platformConnectionType`, `authProvider` and `authType` follow the same rules as the main create-connection request — see the combinations table on `POST /v1/projects/{projectId}/connections`.

          Note: the request body schema is shared with the POST (create) endpoint.
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                CLOUD_PLATFORM_CREDENTIALS Environment Override Response:
                  description: A successfully updated override that swaps in a production
                    AWS credentials secret for the PROD environment.
                  value:
                    name: my-aws-connection
                    platformConnectionType: CLOUD_PLATFORM_CREDENTIALS
                    authProvider: aws
                    authType: CLOUD_PROVIDER_SECRET
                    createdBy: 550e8400-e29b-41d4-a716-446655440001
                    createdDate: 2024-01-15T10:30:00.123456
                    projectId: 550e8400-e29b-41d4-a716-446655440002
                    connectionOverrides:
                      secretsLocation:
                        type: AWS_SECRET_MANAGER
                        region: us-east-1
                      connectionProperties:
                        credentialSecretName: prod-aws-platform-credentials
                COMPONENT_BASIC Environment Override Response:
                  description: Example response for a successfully updated environment
                    connection override
                  value:
                    name: Salesforce
                    platformConnectionType: COMPONENT_BASIC
                    authProvider: NONE
                    authType: GENERIC_SECRET
                    createdBy: 550e8400-e29b-41d4-a716-446655440001
                    createdDate: 2024-01-15T10:30:00.123456
                    projectId: 550e8400-e29b-41d4-a716-446655440002
                    connectionOverrides:
                      secretsLocation:
                        type: AWS_SECRET_MANAGER
                        region: us-east-1
                      connectionProperties:
                        secretName: prod-salesforce-credentials
                        secretKey: apiKey
              schema:
                $ref: "#/components/schemas/EnvironmentConnectionOverrideResponse"
          description: Environment connection override updated successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Environment connection override not found
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Update an existing environment connection override
      tags:
      - Connections
  /v1/projects/{projectId}/data-platform-connections:
    post:
      description: An endpoint for creating a default data warehouse connection
      operationId: createDefaultDWHConnection
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            examples:
              BigQuery:
                description: BigQuery
                value:
                  name: my-dwh-connection
                  platformConnectionType: dwh
                  authProvider: bigquery
                  authType: none
              Databricks (OAuth M2M):
                description: Databricks (OAuth M2M)
                value:
                  name: my-databricks-connection
                  platformConnectionType: dwh
                  authProvider: databricks
                  authType: oauth_client_credentials
              Databricks (Personal Access Token):
                description: Databricks (Personal Access Token)
                value:
                  name: my-databricks-connection
                  platformConnectionType: dwh
                  authProvider: databricks
                  authType: personal_access_token
              Redshift:
                description: Redshift
                value:
                  name: my-dwh-connection
                  platformConnectionType: dwh
                  authProvider: redshift
                  authType: password
              Snowflake:
                description: Snowflake
                value:
                  name: my-dwh-connection
                  platformConnectionType: dwh
                  authProvider: snowflake
                  authType: key_pair
            schema:
              $ref: "#/components/schemas/CreateDefaultDWHConnectionRequest"
        required: true
      responses:
        "201":
          description: Default Data Warehouse Connection created
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Name needs to be unique
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Create a default data warehouse connection
      tags:
      - Connections
  /v1/projects/{projectId}/environments:
    get:
      description: An endpoint for listing environments
      operationId: getAll_1
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - description: Page number (0-indexed)
        example: "0"
        in: query
        name: page
        schema: {}
      - description: Number of records per page (from 1 to 100)
        example: "25"
        in: query
        name: size
        schema: {}
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedResultListEnvironmentSummary"
          description: Environments have been retrieved
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Project not Found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: List All Environments
      tags:
      - Environments
    post:
      description: An endpoint for creating a new environment
      operationId: create_1
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            examples:
              BigQuery Environment:
                description: "Shows a `CLOUD_PLATFORM` connection override that supplies\
                  \ an explicit GCP credential (`credentialSecretName`). Two variations\
                  \ are valid: omit the `my-gcp-connection` override to inherit the\
                  \ credential's project default value, or omit the `CLOUD_PLATFORM`\
                  \ default connection entirely to use the GCP credentials embedded\
                  \ on a hybrid runner."
                value:
                  name: development-env
                  displayName: An environment for testing new features
                  description: An optional description
                  defaultAgentId: 0a9f9866-24e6-43ab-8f3c-71089f407241
                  defaultUserAccessLevel: admin
                  defaultConnections:
                    DWH:
                      bigquery: my-dwh-connection
                    CLOUD_PLATFORM:
                      gcp: my-gcp-connection
                  connectionOverrides:
                  - connectionName: my-dwh-connection
                    connectionProperties:
                      gcpProjectId:
                        value: my-gcp-project
                      defaultDataset:
                        value: my_dataset
                  - connectionName: my-gcp-connection
                    connectionProperties:
                      credentialSecretName: gcp-platform-credentials
              Databricks Environment (OAuth M2M):
                description: Databricks Environment (OAuth M2M)
                value:
                  name: analytics-env
                  displayName: An environment for the analytics team
                  description: An optional description
                  defaultAgentId: 7c3d51f2-9b8a-42de-a6f1-2d4e6f809abc
                  defaultUserAccessLevel: admin
                  defaultConnections:
                    DWH:
                      databricks: analytics-dwh-connection
                  connectionOverrides:
                  - connectionName: analytics-dwh-connection
                    connectionProperties:
                      url:
                        value: https://dbc-9f8e7d6c-b5a4.cloud.databricks.com
                      clusterId:
                        value: 9876-543210-zyxwvuts
                      clusterName:
                        value: analytics-cluster
                      clusterType:
                        value: all_purpose
                      defaultCatalog:
                        value: analytics_catalog
                      defaultSchema:
                        value: analytics_schema
                      clientId:
                        value: my-oauth-client-id
                      clientSecret:
                        secretName: databricks-client-secret
              Databricks Environment (Personal Access Token):
                description: Databricks Environment (Personal Access Token)
                value:
                  name: development-env
                  displayName: An environment for testing new features
                  description: An optional description
                  defaultAgentId: 0a9f9866-24e6-43ab-8f3c-71089f407241
                  defaultUserAccessLevel: admin
                  defaultConnections:
                    DWH:
                      databricks: my-dwh-connection
                  connectionOverrides:
                  - connectionName: my-dwh-connection
                    connectionProperties:
                      url:
                        value: https://dbc-a1b2c3d4-e5f6.cloud.databricks.com
                      clusterId:
                        value: 0123-456789-abcdefgh
                      clusterName:
                        value: my-cluster
                      clusterType:
                        value: sql_warehouse
                      defaultCatalog:
                        value: my_catalog
                      defaultSchema:
                        value: my_schema
                      token:
                        secretName: databricks-pat-secret
              Redshift Environment:
                description: Redshift Environment
                value:
                  name: development-env
                  displayName: An environment for testing new features
                  description: An optional description
                  defaultAgentId: 0a9f9866-24e6-43ab-8f3c-71089f407241
                  defaultUserAccessLevel: admin
                  defaultConnections:
                    DWH:
                      redshift: my-dwh-connection
                  connectionOverrides:
                  - connectionName: my-dwh-connection
                    connectionProperties:
                      url:
                        value: redshift-cluster-abc.abcdefghi99z.eu-west-1.redshift.amazonaws.com
                      username:
                        value: rs-username
                      port:
                        value: "5439"
                      defaultDatabase:
                        value: testing
                      useSsl:
                        value: "true"
                      defaultSchema:
                        value: public
                      defaultStorageLocation:
                        value: my-s3-bucket
                      password:
                        secretName: redshift-secret-name
                        secretKey: key-for-password
              Snowflake Environment:
                description: Snowflake Environment
                value:
                  name: development-env
                  displayName: An environment for testing new features
                  description: An optional description
                  defaultAgentId: 0a9f9866-24e6-43ab-8f3c-71089f407241
                  defaultUserAccessLevel: admin
                  defaultConnections:
                    DWH:
                      snowflake: my-dwh-connection
                  connectionOverrides:
                  - connectionName: my-dwh-connection
                    connectionProperties:
                      account:
                        value: aa1111.eu-central-1
                      username:
                        value: SNOWFLAKE_USER
                      defaultRole:
                        value: SNOWFLAKE_ROLE
                      defaultWarehouse:
                        value: SNOWFLAKE_WAREHOUSE
                      defaultDatabase:
                        value: SNOWFLAKE_DATABASE
                      defaultSchema:
                        value: SNOWFLAKE_SCHEMA
                      privateKey:
                        secretName: snowflake-private-key-secret-name
                      passphrase:
                        secretName: optional-secret-name-for-encrypted-keys
              Snowflake Environment with Cloud Platform Credentials:
                description: Snowflake Environment with Cloud Platform Credentials
                value:
                  name: development-env
                  displayName: An environment for testing new features
                  description: An optional description
                  defaultAgentId: 0a9f9866-24e6-43ab-8f3c-71089f407241
                  defaultUserAccessLevel: admin
                  defaultConnections:
                    DWH:
                      snowflake: my-dwh-connection
                    CLOUD_PLATFORM:
                      aws: my-aws-connection
                      gcp: my-gcp-connection
                      azure: my-azure-connection
                  connectionOverrides:
                  - connectionName: my-dwh-connection
                    connectionProperties:
                      account:
                        value: aa1111.eu-central-1
                      username:
                        value: SNOWFLAKE_USER
                      defaultRole:
                        value: SNOWFLAKE_ROLE
                      defaultWarehouse:
                        value: SNOWFLAKE_WAREHOUSE
                      defaultDatabase:
                        value: SNOWFLAKE_DATABASE
                      defaultSchema:
                        value: SNOWFLAKE_SCHEMA
                      privateKey:
                        secretName: snowflake-private-key-secret-name
                  - connectionName: my-aws-connection
                    connectionProperties:
                      credentialSecretName: aws-platform-credentials
                  - connectionName: my-gcp-connection
                    connectionProperties:
                      credentialSecretName: gcp-platform-credentials
                  - connectionName: my-azure-connection
                    connectionProperties:
                      credentialSecretName: azure-platform-credentials
            schema:
              $ref: "#/components/schemas/CreateEnvironmentRequest"
        required: true
      responses:
        "200":
          description: Environment configuration remains unchanged since last update
        "201":
          description: Environment has been created
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Project not Found
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Conflict
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid agent ID
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Create a new environment
      tags:
      - Environments
  /v1/projects/{projectId}/environments/{environmentName}:
    delete:
      description: An endpoint for deleting an environment by name
      operationId: delete
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - in: path
        name: environmentName
        required: true
        schema:
          type: string
      responses:
        "204":
          description: Environment has been deleted
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Environment not Found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Delete an environment
      tags:
      - Environments
  /v1/projects/{projectId}/pipeline-executions:
    post:
      description: |-
        Triggers the asynchronous execution of a named, published pipeline within the specified project.

        The pipeline must be published to the target environment before it can be executed. On success, returns a `pipelineExecutionId` that can be used to track or query the execution status.

        **Key behaviours:**
        * By default, the latest published version of the pipeline is executed. Use `versionName` to target a specific artifact version.
        * If no `agentId` is provided, the default agent configured for the target environment is used.
        * Use `executionTag` to control concurrency — only one execution per tag is permitted to run at a time within a given environment. A `409 Conflict` is returned if an execution with the same tag is already in progress.
        * Runtime variable values can be overridden per-execution using `scalarVariables` (key-value pairs) or `gridVariables` (two-dimensional string arrays), without modifying the published pipeline definition.
        * A `410 Gone` is returned if the pipeline has been disabled.
      operationId: executePipeline
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            examples:
              Execution Request:
                description: Execution Request
                value:
                  pipelineName: Pipeline 1
                  environmentName: Dev Environment
              Execution Request With Optional Agent:
                description: Execution Request With Optional Agent
                value:
                  pipelineName: Dev Pipeline
                  environmentName: Dev Environment
                  agentId: 3fa85f64-5717-4562-b3fc-2c963f66afa6
              Execution Request With Optional Execution Tag:
                description: Execution Request With Optional Execution Tag
                value:
                  pipelineName: Dev Pipeline
                  environmentName: Dev Environment
                  executionTag: myExecutionTag
              Execution Request With Optional Version Name:
                description: Execution Request With Optional Version Name
                value:
                  pipelineName: Dev Pipeline
                  environmentName: Dev Environment
                  versionName: 1.1.1
              Execution Request With Optional variable overrides:
                description: Execution Request With Optional variable overrides
                value:
                  pipelineName: Dev Pipeline
                  environmentName: Dev Environment
                  scalarVariables:
                    var1: val1
                    var2: val2
                  gridVariables:
                    grid1:
                    - - col1
                      - col2
                      - col3
                    - - col1a
                      - col2a
                      - col3a
            schema:
              $ref: "#/components/schemas/PipelineExecutionRequest"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelineExecutionResponse"
          description: Pipeline executed
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Pipelines not Found
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: "Conflict, concurrent pipeline running for execution tag"
        "410":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Pipeline has been disabled
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Execute Published Pipeline
      tags:
      - Pipeline Execution
  /v1/projects/{projectId}/pipeline-executions/{pipelineExecutionId}:
    get:
      description: "Returns the full details of a pipeline execution, including its\
        \ current status, trigger, timings, and result message. If you only need to\
        \ poll for status changes, consider using the lightweight [getExecutionStatusOnly](#operation/getExecutionStatusOnly)\
        \ endpoint instead."
      operationId: getExecutionStatus
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
      - in: path
        name: pipelineExecutionId
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelineExecution"
          description: Pipeline execution details have been retrieved
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Pipeline Execution not Found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Pipeline Execution Details
      tags:
      - Pipeline Execution
    patch:
      description: "Cancel an executed pipeline, optionally forcing the termination"
      operationId: cancelPipelineExecution
      parameters:
      - description: The UUID of the pipeline's project
        in: path
        name: projectId
        required: true
        schema:
          type: string
      - description: "ID of the pipeline execution, as returned when executing a pipeline"
        in: path
        name: pipelineExecutionId
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PipelineExecutionUpdateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelineExecutionResponse"
          description: Pipeline execution cancelled (or hard cancelled) successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: BAD REQUEST. Unable to cancel (hard cancel) pipeline
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Pipeline Execution not Found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Pipeline termination
      tags:
      - Pipeline Execution
  /v1/projects/{projectId}/pipeline-executions/{pipelineExecutionId}/status:
    get:
      description: Returns the current status of a pipeline execution
      operationId: getExecutionStatusOnly
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
      - in: path
        name: pipelineExecutionId
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelineExecutionStatusOnly"
          description: Pipeline execution status has been retrieved
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Pipeline Execution not Found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Pipeline Execution Status
      tags:
      - Pipeline Execution
  /v1/projects/{projectId}/pipeline-executions/{pipelineExecutionId}/steps:
    get:
      description: Represents a single execution of a pipeline triggered from a step
        of another pipeline.
      operationId: getDetailedExecutionStatus
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
      - in: path
        name: pipelineExecutionId
        required: true
        schema:
          type: string
          format: uuid
      - description: Page number (0-indexed)
        example: "0"
        in: query
        name: page
        schema: {}
      - description: Number of records per page (from 1 to 100)
        example: "25"
        in: query
        name: size
        schema: {}
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedResultListPipelineExecutionStepResult"
          description: Pipeline status has been retrieved
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Pipeline Execution not Found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Pipeline Steps Status
      tags:
      - Pipeline Execution
  /v1/projects/{projectId}/published-pipelines:
    get:
      description: An endpoint for listing published pipelines
      operationId: getAll_3
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - in: query
        name: environmentName
        required: true
        schema:
          type: string
      - in: query
        name: page
        required: false
        schema:
          type: integer
          format: int32
          default: 0
          minimum: 0
      - in: query
        name: size
        required: false
        schema:
          type: integer
          format: int32
          default: 25
          maximum: 1000
          minimum: 1
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedResultListPipelineSummary"
          description: Pipelines have been retrieved
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Pipelines not Found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: List All Published Pipelines
      tags:
      - Pipelines
  /v1/projects/{projectId}/repositories:
    post:
      description: Associates a repository with a project where none has been previously
        set
      operationId: createRepository
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      - in: header
        name: Git-Provider-Access-Token
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            examples:
              Azure DevOps Repository:
                description: Azure DevOps Repository
                value:
                  provider: azure-devops
                  providerParameters:
                    organization: my-azure-organisation
                    repositoryId: existing-repo-id
                    tenantId: my-tenant-id
                  repositoryName: azure-repo-name
              GitHub Repository:
                description: GitHub Repository
                value:
                  provider: github
                  providerParameters:
                    ownerName: my-github-organisation
                  repositoryName: github-repo-name
              GitLab Repository:
                description: GitLab Repository
                value:
                  provider: gitlab
                  providerParameters:
                    repositoryId: "123456789"
                  repositoryName: gitlab-repo-name
            schema:
              oneOf:
              - $ref: "#/components/schemas/CreateAzureDevOpsRepositoryRequest"
              - $ref: "#/components/schemas/CreateGitHubRepositoryRequest"
              - $ref: "#/components/schemas/CreateGitLabRepositoryRequest"
        required: true
      responses:
        "201":
          description: Repository associated successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad request parameters
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Repository already in use or already set
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Associate a repository with a project
      tags:
      - Repositories
  /v1/projects/{projectId}/repositories/token:
    post:
      description: Rotates the supplied Git provider personal access token by delegating
        to the Git service. The new token is stored in the customer vault under the
        git-m2m mount.
      operationId: rotateRepositoryToken
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      - in: header
        name: Git-Provider-Access-Token
        required: true
        schema:
          type: string
          minLength: 1
      responses:
        "204":
          description: Repository token rotated successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad request — missing or invalid token
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden — the provided token could not be rotated
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Project or associated repository not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Rotate the access token for a project repository
      tags:
      - Repositories
  /v1/projects/{projectId}/reviews:
    post:
      description: Reviews pipelines against configured pipeline quality rules
      operationId: reviewPipelineQualityRules
      parameters:
      - description: The UUID of the project
        in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - description: "The agent version (e.g., \"9.0.0\")"
        in: header
        name: Agent-Version
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ReviewRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ReviewResponse"
          description: Pipeline quality review completed successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request parameters
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: File not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Review Pipeline Quality
      tags:
      - Pipeline Quality Review
  /v1/projects/{projectId}/schedules:
    get:
      description: An endpoint for listing schedules for a project
      operationId: listSchedules
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - description: Page number (0-indexed)
        example: "0"
        in: query
        name: page
        schema: {}
      - description: Number of records per page (from 1 to 100)
        example: "25"
        in: query
        name: size
        schema: {}
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedResultListScheduleSummary"
          description: Schedules returned successfully with no errors
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: List All Schedules for a Project
      tags:
      - Schedules
    post:
      description: "Create a new schedule for a specific project, pipeline and environment"
      operationId: createSchedule
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            examples:
              Schedule Request:
                description: Schedule Request
                value:
                  pipeline:
                    pipelineName: Pipeline 1
                    environmentName: Dev Environment
                  schedule:
                    cronExpression: 0 * * ? * * *
                    cronTimezone: Europe/Dublin
                    effectiveFrom: 2022-05-19T12:37:44Z
                    name: Nightly database backup
                    scheduleEnabled: false
              Schedule Request With Optional Agent:
                description: Schedule Request With Optional Agent
                value:
                  pipeline:
                    agentId: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                    pipelineName: Dev Pipeline
                    environmentName: Dev Environment
                  schedule:
                    cronExpression: 0 * * ? * * *
                    cronTimezone: Europe/Dublin
                    effectiveFrom: 2022-05-19T12:37:44Z
                    name: Nightly database backup
                    scheduleEnabled: false
              Schedule Request With Optional variable overrides:
                description: Schedule Request With Optional variable overrides
                value:
                  pipeline:
                    scalarVariables:
                      var1: value1
                    gridVariables:
                      gridVar:
                      - - col1
                    pipelineName: Dev Pipeline
                    environmentName: Dev Environment
                  schedule:
                    cronExpression: 0 * * ? * * *
                    cronTimezone: Europe/Dublin
                    effectiveFrom: 2022-05-19T12:37:44Z
                    name: Nightly database backup
                    scheduleEnabled: false
              Schedule Request With Optional version name:
                description: Schedule Request With Optional version name
                value:
                  pipeline:
                    versionName: 1.0.1
                    pipelineName: Dev Pipeline
                    environmentName: Dev Environment
                  schedule:
                    cronExpression: 0 * * ? * * *
                    cronTimezone: Europe/Dublin
                    effectiveFrom: 2022-05-19T12:37:44Z
                    name: Nightly database backup
                    scheduleEnabled: false
            schema:
              $ref: "#/components/schemas/ScheduleRequest"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScheduleResponse"
          description: Schedule created
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Pipeline not Found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Create a new schedule
      tags:
      - Schedules
  /v1/projects/{projectId}/schedules/{scheduleId}:
    delete:
      description: An endpoint for deleting the schedule for the given schedule id
      operationId: deleteSchedule
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - in: path
        name: scheduleId
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "204":
          description: Schedule deleted successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Deletes the schedule by the given schedule id
      tags:
      - Schedules
    get:
      description: An endpoint to get schedule details for a given schedule id
      operationId: getASchedule
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - in: path
        name: scheduleId
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScheduleSummary"
          description: Schedule details returned successfully with no errors
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Get a schedule summary for a given schedule id
      tags:
      - Schedules
    patch:
      description: An endpoint for updating the schedule for the given schedule id
        and schedule request
      operationId: updateSchedule
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - in: path
        name: scheduleId
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            examples:
              Update Schedule Request:
                description: Update Schedule Request
                value:
                  cronExpression: 0 * * ? * * *
                  cronTimezone: Europe/Dublin
                  effectiveFrom: 2022-05-19T12:37:44Z
                  name: Nightly database backup
                  scheduleEnabled: false
            schema:
              $ref: "#/components/schemas/ScheduleRequestDetails"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScheduleSummary"
          description: Schedule updated successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Update the schedule by the given schedule id and schedule request
      tags:
      - Schedules
  /v1/projects/{projectId}/secret-references:
    get:
      description: An endpoint for listing secret references
      operationId: getAll_2
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - description: "Optional filter for secret reference types. If not provided,\
          \ only PASSWORD types will be returned"
        example: "PASSWORD,OAUTH_USER_TOKENS"
        in: query
        name: secretReferenceTypes
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - PASSWORD
            - OAUTH_USER_TOKENS
            - OAUTH_AUTHORIZATION_CODE
            - OAUTH_CLIENT_CRED
            - OAUTH_CLIENT_CREDENTIALS
            - COMPOSITE_TOKEN
            - CLOUD_PLATFORM_CREDENTIALS
          uniqueItems: true
      - description: Optional filter for providers. This is applicable only for non-PASSWORD
          secret reference types
        example: netsuite
        in: query
        name: providers
        required: false
        schema:
          type: array
          items:
            type: string
          uniqueItems: true
      - description: Page number (0-indexed)
        example: "0"
        in: query
        name: page
        schema: {}
      - description: Number of records per page (from 1 to 100)
        example: "25"
        in: query
        name: size
        schema: {}
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedResultListSecretReferenceSummary"
          description: Secret references have been retrieved
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Secret references not found
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: List All Secret References
      tags:
      - Secret References
  /v1/projects/{projectId}/secret-references/{secretReferenceName}:
    delete:
      description: An endpoint for deleting a secret reference
      operationId: deleteSecretReference
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - in: path
        name: secretReferenceName
        required: true
        schema:
          type: string
      responses:
        "204":
          description: Secret reference has been deleted
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
      summary: Delete a secret reference
      tags:
      - Secret References
    post:
      description: An endpoint for creating a secret reference
      operationId: createSecretReference
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - in: path
        name: secretReferenceName
        required: true
        schema:
          type: string
          pattern: "^[\\w()-]{1,128}$"
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: "#/components/schemas/AwsSecretReferenceRequest"
              - $ref: "#/components/schemas/AzureSecretReferenceRequest"
              - $ref: "#/components/schemas/MatillionHostedSecretReferenceRequest"
        required: true
      responses:
        "201":
          description: Created
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Create a Secret Reference
      tags:
      - Secret References
  /v1/projects/{projectId}/streaming-pipelines:
    get:
      description: Gets a page of streaming pipeline definitions in the account and
        project
      operationId: listStreamingPipelineDefinitions
      parameters:
      - description: The ID of the project in which to list the streaming pipeline
          definitions
        example: 12345678-1234-1234-1234-123456789012
        in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - description: Page number (0-indexed)
        example: "0"
        in: query
        name: page
        schema: {}
      - description: Number of records per page (from 1 to 100)
        example: "25"
        in: query
        name: size
        schema: {}
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedResultListStreamingPipelineDefinition"
          description: A page of streaming pipeline definitions. Possibly empty if
            no definitions exist in the account and project
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: List streaming pipeline definitions
      tags:
      - Streaming Pipelines
    post:
      description: Creates a new streaming pipeline definition in the account and
        project
      operationId: createStreamingPipelineDefinition
      parameters:
      - description: The ID of the project in which to create the streaming pipeline
          definition
        example: 12345678-1234-1234-1234-123456789012
        in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StreamingPipelineDefinitionCreateRequest"
        description: The details of the streaming pipeline definition to create
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamingPipelineDefinition"
          description: Successfully created the streaming pipeline definition
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "405":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Streaming pipeline definition limit reached
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid streaming pipeline definition
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Create a streaming pipeline definition
      tags:
      - Streaming Pipelines
  /v1/projects/{projectId}/streaming-pipelines/{streamingPipelineId}:
    delete:
      description: Deletes a streaming pipeline definition in the account and project
      operationId: deleteStreamingPipelineDefinition
      parameters:
      - description: The ID of the project from which to delete the streaming pipeline
          definition
        example: 12345678-1234-1234-1234-123456789012
        in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - description: The ID of the streaming pipeline definition to delete
        example: 12345678-1234-1234-1234-123456789012
        in: path
        name: streamingPipelineId
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "204":
          description: Successfully deleted the streaming pipeline definition
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Streaming pipeline definition not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Delete a streaming pipeline definition
      tags:
      - Streaming Pipelines
    get:
      description: Gets a streaming pipeline definition in the account and project
      operationId: readStreamingPipelineDefinition
      parameters:
      - description: The ID of the project in which to read the streaming pipeline
          definition
        example: 12345678-1234-1234-1234-123456789012
        in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - description: The ID of the streaming pipeline definition to read
        example: 12345678-1234-1234-1234-123456789012
        in: path
        name: streamingPipelineId
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamingPipelineDefinition"
          description: Successfully retrieved the streaming pipeline definition
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Streaming pipeline definition not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Get a streaming pipeline definition
      tags:
      - Streaming Pipelines
    put:
      description: Updates an existing streaming pipeline definition in the account
        and project
      operationId: updateStreamingPipelineDefinition
      parameters:
      - description: The ID of the project in which to update the streaming pipeline
          definition
        example: 12345678-1234-1234-1234-123456789012
        in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - description: The ID of the streaming pipeline definition to update
        example: 12345678-1234-1234-1234-123456789012
        in: path
        name: streamingPipelineId
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StreamingPipelineDefinitionUpdateRequest"
        description: The updated details of the streaming pipeline definition
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamingPipelineDefinition"
          description: Successfully updated the streaming pipeline definition
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid streaming pipeline definition
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Update a streaming pipeline definition
      tags:
      - Streaming Pipelines
  /v1/projects/{projectId}/streaming-pipelines/{streamingPipelineId}/commands:
    post:
      description: "Sends a request to the streaming agent to run the specified streaming\
        \ pipeline command (e.g. start, stop)"
      operationId: commandStreamingPipeline
      parameters:
      - description: The ID of the project that contains the streaming pipeline definition
        example: 12345678-1234-1234-1234-123456789012
        in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - description: The ID of the streaming pipeline definition to send the command
          to
        example: 12345678-1234-1234-1234-123456789012
        in: path
        name: streamingPipelineId
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StreamingPipelineCommandRequest"
        description: The command to send to the streaming agent to execute
        required: true
      responses:
        "202":
          description: Successfully executed streaming pipeline command
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Streaming Pipeline not found
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Streaming pipeline status conflict (e.g. trying to start a
            running pipeline or stop a stopped pipeline)
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Execute a streaming pipeline command
      tags:
      - Streaming Pipelines
  /v1/projects/{projectId}/streaming-pipelines/{streamingPipelineId}/status:
    get:
      description: Sends a request to the streaming agent to get the status of a streaming
        pipeline
      operationId: getStreamingPipelineStatus
      parameters:
      - description: The ID of the project that contains the streaming pipeline definition
        example: 12345678-1234-1234-1234-123456789012
        in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - description: The ID of the streaming pipeline definition to get the status
          of
        example: 12345678-1234-1234-1234-123456789012
        in: path
        name: streamingPipelineId
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamingPipelineStatusResponse"
          description: Successfully retrieved streaming pipeline's status
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad request
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Streaming pipeline not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Get a streaming pipeline's status
      tags:
      - Streaming Pipelines
  /v1/projects/{projectId}/test-executions:
    post:
      description: |-
        Trigger test execution(s) for a given project.

        **Scope determines which fields are required:**
        - `scope=TEST` — provide a `tests` array of test file names (each ending in `.test.yaml`).
        - `scope=PIPELINE` — provide a `pipelines` array of pipeline file names (each ending in `.orch.yaml` or `.tran.yaml`). All tests associated with those pipelines will run.
        - `scope=PROJECT` — runs every test in the project; no `tests` or `pipelines` field needed.

        `environmentName` is always required. `versionName`, `executionTag`, and `agentId` are optional and work with any scope.
      operationId: createTestExecution
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            examples:
              Execute All Project Tests (scope=PROJECT):
                description: Run every test in the project; no tests or pipelines
                  field needed
                value:
                  scope: PROJECT
                  environmentName: Dev Environment
              Execute Specific Tests (scope=TEST):
                description: Run named test files; each testName must end with .test.yaml
                value:
                  scope: TEST
                  tests:
                  - name: my-first.test.yaml
                  - name: my-second.test.yaml
                  environmentName: Dev Environment
              Execute Tests With Optional Agent:
                description: Target a specific agent instead of the environment default
                value:
                  scope: PROJECT
                  environmentName: Dev Environment
                  agentId: 3fa85f64-5717-4562-b3fc-2c963f66afa6
              Execute Tests With Optional Execution Tag:
                description: Tag the execution to control concurrency
                value:
                  scope: PROJECT
                  environmentName: Dev Environment
                  executionTag: nightly
              Execute Tests With Optional Version Name:
                description: Pin execution to a specific artifact version
                value:
                  scope: TEST
                  tests:
                  - name: my-first.test.yaml
                  environmentName: Dev Environment
                  versionName: v1.2.3
              Execute Tests for Pipelines (scope=PIPELINE):
                description: Run all tests associated with the given pipelines (.orch.yaml
                  or .tran.yaml)
                value:
                  scope: PIPELINE
                  pipelines:
                  - name: etl-load.orch.yaml
                  - name: transform-step.tran.yaml
                  environmentName: Dev Environment
            schema:
              $ref: "#/components/schemas/TestExecutionRequest"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TestExecutionResponse"
          description: Test execution created
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Create Test Execution
      tags:
      - Test Execution
  /v1/projects/{projectId}/test-executions/{testExecutionId}:
    get:
      description: Status of an executed test
      operationId: getTestExecutionStatus
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
      - in: path
        name: testExecutionId
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TestExecutionStatusResponse"
          description: Test execution status has been retrieved
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Bad Request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Test execution not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Test Execution Status
      tags:
      - Test Execution
    patch:
      description: "Cancel a test execution, optionally forcing the termination"
      operationId: cancelTestExecution
      parameters:
      - description: The UUID of the test execution's project
        in: path
        name: projectId
        required: true
        schema:
          type: string
      - description: "ID of the test execution, as returned when executing a test"
        in: path
        name: testExecutionId
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PipelineExecutionUpdateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CancelTestExecutionResponse"
          description: Test execution cancelled successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unable to cancel test execution
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Test execution not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Cancel Test Execution
      tags:
      - Test Execution
  /v1/projects/{projectId}/variables:
    get:
      description: Get all project variables for a project
      operationId: getProjectVariables
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - description: Page number (0-indexed)
        example: "0"
        in: query
        name: page
        schema: {}
      - description: Number of records per page (from 1 to 100)
        example: "25"
        in: query
        name: size
        schema: {}
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedResultListProjectVariable"
          description: Project variables have been retrieved
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Project not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Get all project variables for a project
      tags:
      - Project Variables
    post:
      description: Create a new project variable
      operationId: createProjectVariable
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateProjectVariableRequest"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateProjectVariableResponse"
          description: Project variable has been created
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Project not found
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Conflict
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Create a project variable
      tags:
      - Project Variables
  /v1/projects/{projectId}/variables/{variableName}:
    delete:
      description: Delete a project variable by name
      operationId: deleteProjectVariable
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - in: path
        name: variableName
        required: true
        schema:
          type: string
          maxLength: 255
          minLength: 0
          pattern: "^(?!\\$$)[a-zA-Z_$][a-zA-Z0-9_$]*$"
      responses:
        "204":
          description: Project variable has been deleted
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Project or variable not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Delete a project variable
      tags:
      - Project Variables
    patch:
      description: Update a project variable with the provided properties
      operationId: updateProjectVariable
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - in: path
        name: variableName
        required: true
        schema:
          type: string
          maxLength: 255
          minLength: 0
          pattern: "^(?!\\$$)[a-zA-Z_$][a-zA-Z0-9_$]*$"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateProjectVariableRequest"
        required: true
      responses:
        "204":
          description: Project variable has been updated
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Project or variable not found
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: A variable with the requested new name already exists
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Update a project variable
      tags:
      - Project Variables
  /v1/projects/{projectId}/variables/{variableName}/environment-overrides:
    get:
      description: Get all environment-level overrides for a given project variable
      operationId: getProjectVariableEnvironmentOverrides
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - in: path
        name: variableName
        required: true
        schema:
          type: string
          maxLength: 255
          minLength: 0
          pattern: "^(?!\\$$)[a-zA-Z_$][a-zA-Z0-9_$]*$"
      - in: query
        name: environmentName
        required: false
        schema:
          type: string
          pattern: "^$|^(?!-)[\\w() -]{1,255}(?<!-)$"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectVariableOverrides"
          description: Project variable environment overrides have been retrieved
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Project or variable not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Get environment overrides
      tags:
      - Project Variable Environment Overrides
    post:
      description: Create environment-level overrides for a given project variable
      operationId: createProjectVariableEnvironmentOverrides
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - in: path
        name: variableName
        required: true
        schema:
          type: string
          maxLength: 255
          minLength: 0
          pattern: "^(?!\\$$)[a-zA-Z_$][a-zA-Z0-9_$]*$"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateProjectVariableEnvironmentOverridesRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateProjectVariableEnvironmentOverridesResponse"
          description: Project variable environment overrides created or updated.
            Returns both successful and failed overrides.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Project or variable not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Create environment overrides
      tags:
      - Project Variable Environment Overrides
  /v1/projects/{projectId}/variables/{variableName}/environment-overrides/{environmentName}:
    delete:
      description: Delete the environment-level override for a given project variable
        and environment
      operationId: deleteProjectVariableEnvironmentOverride
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
          format: uuid
      - in: path
        name: variableName
        required: true
        schema:
          type: string
          maxLength: 255
          minLength: 0
          pattern: "^(?!\\$$)[a-zA-Z_$][a-zA-Z0-9_$]*$"
      - in: path
        name: environmentName
        required: true
        schema:
          type: string
          minLength: 1
          pattern: "^(?!-)[\\w() -]{1,255}(?<!-)$"
      responses:
        "204":
          description: Project variable environment override has been deleted
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid variable or environment name format
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: "Project, variable, environment, or override not found"
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Delete an environment override
      tags:
      - Project Variable Environment Overrides
  /v1/secrets/{agentId}/secret-value:
    post:
      description: "Creates a new secret value, which is encrypted in transit using\
        \ the certificate of the provided Agent, then decrypted by the Agent and stored\
        \ in plain-text within the Customer vault."
      operationId: encryptAndStoreSecret
      parameters:
      - in: path
        name: agentId
        required: true
        schema:
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UnencryptedSecretRequest"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ResolverSecretReferenceResponse"
          description: Created
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: A secret with that target name already exists in the vault
            location
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: Create a new Secret Value
      tags:
      - Secrets
  /v1/shared-pipelines:
    get:
      description: Returns a paginated list of all published shared pipelines accessible
        to the account across all namespaces.
      operationId: listPublishedSharedPipelines
      parameters:
      - description: Page number (0-indexed)
        example: "0"
        in: query
        name: page
        schema: {}
      - description: Number of records per page (from 1 to 100)
        example: "25"
        in: query
        name: size
        schema: {}
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedResultList"
          description: Published shared pipelines listed successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid pagination parameters
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Missing or invalid authentication token
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: User lacks permission to list published shared pipelines
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: List Published Shared Pipelines
      tags:
      - Shared Pipeline Artifacts
  /v1/shared-pipelines/artifacts:
    get:
      description: Returns a paginated list of published shared pipeline artifacts
        for the account. Supports pagination and sorting.
      operationId: listSharedArtifacts
      parameters:
      - example: my-shared-pipeline
        in: query
        name: sharedPipelineIdPrefix
        required: false
        schema:
          type: string
          example: my-shared-pipeline
      - example: my-pipeline
        in: query
        name: sharedPipelineId
        required: false
        schema:
          type: string
          example: my-pipeline
      - example: 1.0.0
        in: query
        name: versionName
        required: false
        schema:
          type: string
          example: 1.0.0
      - example: true
        in: query
        name: enabledOnly
        required: false
        schema:
          type: boolean
          example: true
      - description: Zero-based page index (0..N)
        in: query
        name: page
        required: false
        schema:
          type: integer
          default: 0
          minimum: 0
      - description: The size of the page to be returned
        in: query
        name: size
        required: false
        schema:
          type: integer
          default: 25
          minimum: 1
      - description: "Sorting criteria in the format: property,(asc|desc). Default\
          \ sort order is ascending. Multiple sort criteria are supported."
        in: query
        name: sort
        required: false
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListSharedPipelinesResponse"
          description: Shared pipeline artifacts listed successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid filter parameters
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Missing or invalid authentication token
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: User lacks permission to list shared pipeline artifacts
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Resource not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: List Published Shared Pipeline Artifacts
      tags:
      - Shared Pipeline Artifacts
    patch:
      description: Enables or disables a specific version of a shared pipeline artifact.
        The sharedPipelineIdPrefix identifies the shared pipeline group.
      operationId: enableDisableSharedPipeline
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateSharedPipelineRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UpdateSharedPipelineResponse"
          description: Shared pipeline artifact version updated successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request body or missing required fields
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Missing or invalid authentication token
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Insufficient permissions to update shared pipeline artifacts
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Shared pipeline artifact or version not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Enable or Disable a Shared Pipeline Artifact Version
      tags:
      - Shared Pipeline Artifacts
    post:
      description: Publishes a shared pipeline artifact as a multipart upload. The
        sharedPipelineIdPrefix identifies the shared pipeline group.
      operationId: publishSharedArtifact
      parameters:
      - in: header
        name: content-type
        required: true
        schema:
          type: string
      - in: header
        name: sharedPipelineIdPrefix
        required: true
        schema:
          type: string
      - in: header
        name: versionName
        required: true
        schema:
          type: string
      - in: header
        name: commitHash
        required: false
        schema:
          type: string
      - in: header
        name: branch
        required: false
        schema:
          type: string
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublishSharedPipelineResponse"
          description: Shared pipeline artifact published successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid sharedPipelineIdPrefix format or missing required headers
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Missing or invalid authentication token
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Insufficient permissions to publish shared pipeline artifacts
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Resource not found
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Artifact version already exists for this sharedPipelineIdPrefix
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Publish a Shared Pipeline Artifact
      tags:
      - Shared Pipeline Artifacts
  /v1/shared-pipelines/artifacts/details:
    get:
      description: "Returns artifact metadata and the list of shared pipelines within\
        \ a specific version. If versionName is omitted, the latest version is returned."
      operationId: getSharedArtifactDetails
      parameters:
      - description: The prefix identifier grouping related shared pipelines
        example: my-shared-pipeline
        in: query
        name: sharedPipelineIdPrefix
        required: true
        schema:
          type: string
          description: "${sharedpipeline.metadata.sharedPipelineIdPrefix.desc}"
          example: my-shared-pipeline
          minLength: 1
      - description: The version name of the shared pipeline artifact
        example: 1.0.0
        in: query
        name: versionName
        required: false
        schema:
          type: string
          description: "${sharedpipeline.metadata.versionName.desc}"
          example: 1.0.0
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SharedPipelineDetailsResponse"
          description: Shared pipeline artifact details retrieved successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Invalid request parameters
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Missing or invalid authentication token
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Insufficient permissions to get shared pipeline artifact details
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Shared pipeline artifact not found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Get Shared Pipeline Artifact Details
      tags:
      - Shared Pipeline Artifacts
  /v1/test-executions:
    get:
      description: "Returns a list of summarised test executions. The list is ordered\
        \ by the start time of the execution, with the most recent execution first.\
        \ It can be paginated by providing a `paginationToken` query parameter obtained\
        \ from a previous response."
      operationId: getTestExecutions
      parameters:
      - description: Filter results to test executions belonging to this project.
        in: query
        name: projectId
        required: false
        schema:
          type: string
      - description: Token to fetch the next batch of results for a previous query.
        in: query
        name: paginationToken
        required: false
        schema:
          type: string
      - description: The maximum number of results to return (capped at 100).
        in: query
        name: limit
        required: false
        schema:
          type: integer
          format: int32
          default: 25
      - description: "Search against test name, with case-insensitive partial matching."
        in: query
        name: testName
        required: false
        schema:
          type: string
      - description: Filter results to test executions within this environment.
        in: query
        name: environmentName
        required: false
        schema:
          type: string
      - description: Filter results to test executions started at or after this moment.
        example: 2021-01-01T00:00:00Z
        in: query
        name: startedAfter
        required: false
        schema:
          type: string
          format: date-time
      - description: Filter results to test executions started at or before this moment.
        example: 2021-01-01T00:00:00Z
        in: query
        name: startedBefore
        required: false
        schema:
          type: string
          format: date-time
      - description: "Filter results to test executions that started within this time\
          \ frame, relative to now. Accepts an ISO-8601 duration string in the `PnDTnHnMnS`\
          \ format, using days, hours, minutes and/or seconds, e.g. `P1D`, `P7D`,\
          \ `PT1H`, `PT30M`, `PT90S`. Week, month and year units (`P1W`, `P1M`, `P1Y`)\
          \ are not supported — use the day-based equivalents `P7D`, `P30D` and `P365D`\
          \ instead."
        examples:
          "1. Past day":
            description: 1. Past day
            value: P1D
          "2. Past 1 day and 6 hours":
            description: 2. Past 1 day and 6 hours
            value: P1DT6H
          "3. Past week (7 days)":
            description: 3. Past week (7 days)
            value: P7D
          "4. Past month (30 days)":
            description: 4. Past month (30 days)
            value: P30D
          "5. Past hour":
            description: 5. Past hour
            value: PT1H
          "6. Past 30 minutes":
            description: 6. Past 30 minutes
            value: PT30M
          "7. Past 90 seconds":
            description: 7. Past 90 seconds
            value: PT90S
        in: query
        name: timeFrame
        required: false
        schema:
          type: string
      - description: Filter results to test executions which have the status of one
          of the provided values.
        in: query
        name: status
        required: false
        schema:
          type: string
          enum:
          - RUNNING
          - SUCCESS
          - FAILED
          - CANCELLING
          - CANCELLED
          - FORBIDDEN
          - SKIPPED
          - UNKNOWN
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScrollResultListTestExecution"
          description: Test executions returned successfully
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "401":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Forbidden
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
        "504":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Gateway timeout
      summary: List Test Executions
      tags:
      - Test Execution
  /v2/projects/{projectId}/artifacts/details:
    get:
      description: An endpoint for getting artifact details along with assets details
        by a given version name
      operationId: getArtifactDetailsWithAssets
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
      - in: query
        name: versionName
        required: false
        schema:
          type: string
      - in: query
        name: environmentName
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArtifactDetailsWithAssetsDetails"
          description: Artifact details retrieved
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Wrong request parameters used
        "403":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unauthorized
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Artifact not Found
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ProblemDetail"
          description: Unexpected error occurred
      summary: Get Artifact with assets details by a given version name
      tags:
      - Artifacts
components:
  schemas:
    Address:
      type: object
      properties:
        country:
          type: string
        display:
          type: string
        formatted:
          type: string
        locality:
          type: string
        postalCode:
          type: string
        primary:
          type: boolean
        region:
          type: string
        streetAddress:
          type: string
        type:
          type: string
    AgentAccessResponse:
      type: object
      properties:
        projects:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ProjectDetails"
          description: The list of projects the Agent is scoped to. Each project will
            be displayed as an object with the Project ID as the key.
          example:
            projects:
              "3fa85f64-5717-4562-b3fc-2c963f66afa6":
                environments:
                - dev
                - prod
              "1398aa31-af57-4a6a-9752-27c2e8556c3f":
                environments:
                - prod
      required:
      - projects
    AgentCommandRequest:
      type: object
      properties:
        command:
          type: string
          description: The command being sent
          enum:
          - RESTART
          - PAUSE
          - RESUME
          example: RESTART
      required:
      - command
    AgentConfig:
      discriminator:
        propertyName: name
      properties:
        name:
          type: string
      required:
      - name
    AgentConfigOverride:
      type: "null"
      discriminator:
        propertyName: name
      properties:
        name:
          type: string
      required:
      - name
    AgentCredentials:
      type: object
      properties:
        clientId:
          type: string
        clientSecret:
          type: string
    AgentCredentialsRequest:
      type: object
      properties:
        action:
          type: string
          description: |-
            The action to perform for agent credentials.

            Available actions are:
            - SECRET_REFRESH - Refresh the client secret of the Agent
          enum:
          - SECRET_REFRESH
          example: SECRET_REFRESH
      required:
      - action
    AgentInfo:
      type: object
      properties:
        agentId:
          type: string
          description: The ID of the Agent
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        agentStatus:
          type: string
          description: The reported status of the Agent
          example: running
        agentType:
          type: string
          description: The type of Agent
          example: data_productivity_cloud
        cloudProvider:
          type: string
          description: The cloud provider the Agent is hosted in
          example: aws
        connected:
          type: boolean
          description: Whether the Agent is connected
          example: true
        deployment:
          type: string
          description: The deployment type of the Agent
          example: fargate
        description:
          type: string
          description: The description set for the Agent
          example: An AWS Agent
        enableAutoUpdates:
          type: boolean
          description: Whether the Agent is set to automatically update
          example: true
        name:
          type: string
          description: The name of the Agent
          example: AWS Agent
        pausedUntil:
          type: string
          description: The date and time the Agent will be unpaused automatically.
            Only returned if the Agent is currently paused
          example: 2025-01-01T00:00:00.000Z
        restrictedAccess:
          type: boolean
          description: Whether the Agent is restricted to a specific set of projects
          example: true
        versionDetails:
          $ref: "#/components/schemas/VersionDetails"
          description: The version details of the Agent
    AgentSummary:
      type: object
      properties:
        agentId:
          type: string
          description: The ID of the Agent
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        agentStatus:
          type: string
          description: The reported status of the Agent
          example: running
        agentType:
          type: string
          description: The type of Agent
          example: data_productivity_cloud
        cloudProvider:
          type: string
          description: The cloud provider the Agent is hosted in
          example: aws
        connected:
          type: boolean
          description: Whether the Agent is connected
          example: true
        deployment:
          type: string
          description: The deployment type of the Agent
          example: fargate
        description:
          type: string
          description: The description set for the Agent
          example: An AWS Agent
        name:
          type: string
          description: The name of the Agent
          example: AWS Agent
        pausedUntil:
          type: string
          description: The date and time the Agent will be unpaused automatically.
            Only returned if the Agent is currently paused
          example: 2025-01-01T00:00:00.000Z
    AgentTrackHistory:
      type: object
      properties:
        releasedAt:
          type: string
          description: The ISO 8601 timestamp when this version was released on the
            track
        supportLevel:
          type: string
          description: "The support level for this entry, uppercase (e.g. SUPPORTED,\
            \ UNSUPPORTED, DEPRECATED)"
        trackName:
          type: string
          description: "The name of the track, uppercase (e.g. CURRENT, STABLE)"
        version:
          type: string
          description: The agent version string for this history entry
    AgentTrackHistoryResponse:
      type: object
      properties:
        page:
          type: integer
          format: int32
          description: The 0-indexed page number of the returned results.
          example: 1
        results:
          type: array
          description: List of agent track history entries for the current page
          items:
            $ref: "#/components/schemas/AgentTrackHistory"
        size:
          type: integer
          format: int32
          description: The size of each page of results.
          example: 20
        total:
          type: integer
          format: int64
          description: Total number of available results across all pages.
          example: 100
    AgentUpdate:
      type: object
      properties:
        description:
          type: string
          description: The updated description to be applied to the Agent
          example: An AWS Agent
          maxLength: 500
          minLength: 0
        enableAutoUpdates:
          type: string
          description: |-
            Set whether the Agent should automatically update.

            Note, Snowflake agents cannot have this value changed.
          example: "true"
        name:
          type: string
          description: The updated name to be applied to the Agent
          example: AWS Agent
          maxLength: 30
          minLength: 1
        restrictedAccess:
          type: string
          description: |-
            Set whether the Agent should be restricted to a specific set of projects. If set to true, the Agent will only be applicable to projects it is scoped to have access to.

            Note, this cannot be set for Streaming Agents.
          example: "true"
        trackName:
          type: string
          description: |-
            The version track name to set for the Agent. Must be either CURRENT or STABLE.

            Note, Snowflake agents cannot be updated.
          enum:
          - CURRENT
          - STABLE
          example: CURRENT
    AllowedTool:
      type: object
      properties:
        toolName:
          type: string
          description: The name of the tool to allow
          example: execute_sql
          minLength: 1
      required:
      - toolName
    ArtifactDetails:
      type: object
      properties:
        branch:
          type: string
        commitHash:
          type: string
        createdAt:
          type: string
          format: date-time
        deployedAt:
          type: string
          format: date-time
        enabled:
          type: boolean
        provider:
          type: string
        versionName:
          type: string
    ArtifactDetailsWithAssets:
      type: object
      properties:
        assets:
          type: array
          items:
            type: string
        details:
          $ref: "#/components/schemas/ArtifactDetails"
    ArtifactDetailsWithAssetsDetails:
      type: object
      properties:
        assets:
          type: array
          items:
            $ref: "#/components/schemas/AssetDetails"
        details:
          $ref: "#/components/schemas/ArtifactDetails"
    ArtifactEnabledRequest:
      type: object
      properties:
        enabled:
          type: boolean
          description: The flag to enable or disable the artifact
        environmentName:
          type: string
          description: The environment name of the artifact to enable or disable
          minLength: 1
        versionName:
          type: string
          description: The version of the artifact to enable or disable
          minLength: 1
      required:
      - environmentName
      - versionName
    ArtifactEnabledResponse:
      type: object
      properties:
        enabled:
          type: boolean
          description: The flag to enable or disable the artifact
        versionName:
          type: string
          description: The version of the artifact
          minLength: 1
      required:
      - enabled
      - versionName
    ArtifactPromotionRequest:
      type: object
      properties:
        sourceEnvironmentName:
          type: string
          description: The name of environment to promote the artifact from
          minLength: 1
        targetEnvironmentName:
          type: string
          description: The name of environment to promote the artifact to
          minLength: 1
        versionName:
          type: string
          description: The version of the artifact to be promoted
          minLength: 1
      required:
      - sourceEnvironmentName
      - targetEnvironmentName
      - versionName
    ArtifactPromotionResponse:
      type: object
      properties:
        environmentName:
          type: string
          description: The name of promoted environment
        versionName:
          type: string
          description: The artifact version name promoted
    ArtifactResponse:
      type: object
      properties:
        ignoredResources:
          type: array
          description: List of assets that were not included in the artifact
          items:
            $ref: "#/components/schemas/IgnoredAsset"
        versionName:
          type: string
          description: The generated artifact version name used to identify a specific
            artifact
          example: "1"
    AssetDetails:
      type: object
      properties:
        contentHash:
          type: string
          description: The content hash of the asset
        contentSize:
          type: integer
          format: int64
          description: The size of the asset in bytes
        contentType:
          type: string
          description: The contentType of the asset
        description:
          type: string
          description: The description of the asset
        name:
          type: string
          description: The name of the asset including its relative path
    AugmentedAuditEventResponse:
      type: object
      description: Details of an audit event.
      properties:
        actorEmail:
          type: string
          description: |
            Email address of the user who performed this action. Only available
            when the action was performed by a user with a valid email address.
          example: user123@abc.com
        actorId:
          type: string
          description: Identifier of the user or machine user that performed this
            action.
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
          - google-oauth2|432847385743548375843
        additionalInfo:
          $ref: "#/components/schemas/JsonNode"
          description: "Optional additional context about this activity, such as IP\
            \ address or other details."
          example:
            ip: 68.134.82.19
        eventDescription:
          type: string
          description: A brief description of what happened.
          example: User logged in
        eventId:
          type: string
          format: uuid
          description: |
            A unique identifier for this audit event.
          example: 123e4567-e89b-12d3-a456-426614174000
        eventName:
          type: string
          description: The specific action that was performed.
          example: hub_user_login
        eventProjectId:
          type: string
          format: uuid
          description: "Project ID where this action occurred, if applicable."
          example: 4cfcf46e-5bb1-4887-8772-d1c0eeb0cfef
        eventSource:
          type: string
          description: The Matillion service where this action originated.
          example: secrets-reference
        eventSubjectId:
          type: string
          description: Unique identifier of the resource affected by this action.
          example: C67A9A1A-5A49-4EBF-8222-0C6DCC572505
        eventSubjectName:
          type: string
          description: Name of the resource affected by this action.
          example: my-first-secret
        eventSubjectType:
          type: string
          description: "Type of resource affected by this action (e.g., USER, PROJECT,\
            \ SECRET)."
          example: USER
        eventTimestamp:
          type: string
          format: date-time
          description: "When this activity occurred, in UTC time."
          example: 2025-01-30T00:30:12Z
        eventType:
          type: string
          description: Category of the activity.
          example: LOGIN
      required:
      - eventId
    AwsSecretReferenceRequest:
      allOf:
      - $ref: "#/components/schemas/SecretReferenceRequest"
      - type: object
        properties:
          secretKey:
            type: string
            description: The key of the secret within the Cloud Provider
            example: aws-secret-key
          secretName:
            type: string
            description: The name of the secret within the Cloud Provider
            example: aws-secret-name
      description: Secret Reference request body for creating a new secret reference
        for an AWS Customer hosted project
      required:
      - agentType
      - secretName
      - secretReferenceType
    AwsVaultLocation:
      allOf:
      - $ref: "#/components/schemas/VaultLocation"
      - type: object
        properties:
          region:
            type: string
      title: AWS Secrets Manager
    AzureDevOpsProviderParameters:
      type: object
      properties:
        organization:
          type: string
          description: The Azure DevOps organization name
          example: my-azure-org
          minLength: 1
        repositoryId:
          type: string
          description: The existing repository ID in Azure DevOps
          example: existing-repo-id
          minLength: 1
        tenantId:
          type: string
          description: The Azure AD tenant ID
          example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
          minLength: 1
      required:
      - organization
      - repositoryId
      - tenantId
    AzureSecretReferenceRequest:
      allOf:
      - $ref: "#/components/schemas/SecretReferenceRequest"
      - type: object
        properties:
          secretKey:
            type: string
            description: The key of the secret within the Cloud Provider
            example: azure-secret-key
          secretName:
            type: string
            description: The name of the secret within the Cloud Provider
            example: azure-secret-name
          vaultName:
            type: string
            description: The name of the Azure vault the secret is stored in
            example: azure-vault-name
      description: Secret Reference request body for creating a new secret reference
        for an Azure Customer hosted project
      required:
      - agentType
      - secretName
      - secretReferenceType
      - vaultName
    AzureVaultLocation:
      allOf:
      - $ref: "#/components/schemas/VaultLocation"
      - type: object
        properties:
          vaultName:
            type: string
      title: Azure Key Vault
    CancelTestExecutionResponse:
      type: object
      properties:
        testExecutionId:
          type: string
          format: uuid
          description: Server-generated identifier for the cancelled test execution
          example: 1398aa31-af57-4a6a-9752-27c2e8556c3f
    ChargedEtlUser:
      type: object
      properties:
        username:
          type: string
          description: The username of this user
          example: User 6
    ChildPipelineInfo:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for this step execution.
          example: b715b912-41fb-402c-ad3b-1807313670e3
        name:
          type: string
          description: The name of this step - usually the name of the component as
            written at design time.
          example: start
    CloudPlatformCredentialsConnectionProperties:
      allOf:
      - $ref: "#/components/schemas/ConnectionProperties"
      - type: object
        properties:
          credentialSecretName:
            type: string
            description: The name of the secret containing the cloud platform credentials
            example: aws-platform-credentials
      description: Connection properties for cloud platform credentials connections
      title: Cloud Platform Credentials
    ComponentBasicConnectionProperties:
      allOf:
      - $ref: "#/components/schemas/ConnectionProperties"
      - type: object
        properties:
          secretKey:
            type: string
            description: Optional key within the secret
            example: password
          secretName:
            type: string
            description: The name of the secret
            example: some-secret-name
            minLength: 1
      description: Connection properties for component basic connections
      required:
      - secretName
      title: Component Basic
    ConnectionDetails:
      type: object
      properties:
        connectionProperties:
          description: "Connection properties as determined by the combination of\
            \ platformConnectionType, authProvider and authType."
          oneOf:
          - $ref: "#/components/schemas/CloudPlatformCredentialsConnectionProperties"
          - $ref: "#/components/schemas/ComponentBasicConnectionProperties"
        description:
          type: string
          description: Optional description of the connection
        secretsLocation:
          description: "Vault location for secrets. Allows you to specify the type\
            \ of vault such as AWS, Azure, GCP, or Snowflake, and any supplementary\
            \ properties such as region (AWS), vaultName (Azure, Snowflake), or gcpProjectId\
            \ (GCP). Optional for empty project connections that rely solely on environment\
            \ overrides."
          oneOf:
          - $ref: "#/components/schemas/AwsVaultLocation"
          - $ref: "#/components/schemas/AzureVaultLocation"
          - $ref: "#/components/schemas/DefaultVaultLocation"
          - $ref: "#/components/schemas/GcpVaultLocation"
          - $ref: "#/components/schemas/MatillionHostedVaultLocation"
    ConnectionDetailsResponse:
      type: object
      properties:
        connectionProperties:
          description: "Connection properties as determined by the combination of\
            \ platformConnectionType, authProvider and authType."
          oneOf:
          - $ref: "#/components/schemas/CloudPlatformCredentialsConnectionProperties"
          - $ref: "#/components/schemas/ComponentBasicConnectionProperties"
        description:
          type: string
          description: Optional description of the connection
        secretsLocation:
          description: "Vault location for secrets. Allows you to specify the type\
            \ of vault such as AWS, Azure, GCP, or Snowflake, and any supplementary\
            \ properties such as region (AWS), vaultName (Azure, Snowflake), or gcpProjectId\
            \ (GCP). Optional for empty project connections that rely solely on environment\
            \ overrides."
          oneOf:
          - $ref: "#/components/schemas/AwsVaultLocation"
          - $ref: "#/components/schemas/AzureVaultLocation"
          - $ref: "#/components/schemas/DefaultVaultLocation"
          - $ref: "#/components/schemas/GcpVaultLocation"
          - $ref: "#/components/schemas/MatillionHostedVaultLocation"
    ConnectionOverride:
      type: object
      properties:
        connectionName:
          type: string
          description: The name of the connection to override
          maxLength: 255
          minLength: 1
        connectionProperties:
          type: object
          additionalProperties: {}
          description: The connection properties for the connection override
      required:
      - connectionName
    ConnectionOverrideDetails:
      type: object
      properties:
        connectionProperties:
          description: "Connection properties specific to the platform connection\
            \ type. For COMPONENT_BASIC connections, this contains secretName and\
            \ secretKey fields."
          example:
            secretName: db-credentials
            secretKey: password
          oneOf:
          - $ref: "#/components/schemas/CloudPlatformCredentialsConnectionProperties"
          - $ref: "#/components/schemas/ComponentBasicConnectionProperties"
        secretsLocation:
          description: The vault location configuration where secrets are stored
          oneOf:
          - $ref: "#/components/schemas/AwsVaultLocation"
          - $ref: "#/components/schemas/AzureVaultLocation"
          - $ref: "#/components/schemas/DefaultVaultLocation"
          - $ref: "#/components/schemas/GcpVaultLocation"
          - $ref: "#/components/schemas/MatillionHostedVaultLocation"
    ConnectionProperties:
      description: Connection properties for different connection types
    Consumption:
      type: object
      properties:
        results:
          type: array
          description: "An array of date periods, each containing the consumption\
            \ for that period"
          example:
          - consumedFrom: 2024-01-01T00:00:00Z
            consumedBefore: 2024-01-02T00:00:00Z
            consumption:
            - consumptionType: etl-compute
              dimensions:
                installationId: 1850bc49-c4a4-4f35-ab3c-827b849548b9
              credits: 24
            - consumptionType: orchestration
              dimensions:
                pipelineName: projects/my-project/pipelines/daily-load.orch.yaml
                projectId: d46a46c2-7ac4-41a8-b619-4ca34a7f003f
                environment: default
              credits: 16.2
            - consumptionType: transformation
              dimensions:
                pipelineName: projects/my-project/pipelines/enrich-customers.tran.yaml
                projectId: d46a46c2-7ac4-41a8-b619-4ca34a7f003f
                environment: default
              credits: 9.6
            - consumptionType: streaming
              dimensions:
                pipelineName: projects/my-project/pipelines/cdc-stream
                projectId: a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d
              credits: 9.6
            - consumptionType: data-loader-batch
              dimensions:
                pipelineId: "1732786524"
              credits: 50
            - consumptionType: data-loader-cdc
              dimensions:
                pipelineId: "1732786525"
              credits: 60
            - consumptionType: dpc-users
              dimensions:
                userEmail: jane.doe@example.com
              credits: 70
          items:
            $ref: "#/components/schemas/ConsumptionBreakdown"
    ConsumptionBreakdown:
      type: object
      properties:
        consumedBefore:
          type: string
          format: date-time
          description: Calendar date before which results are included (UTC) (exclusive)
          example: 2024-01-02T00:00:00Z
        consumedFrom:
          type: string
          format: date-time
          description: First calendar date included in results (UTC) (inclusive)
          example: 2024-01-01T00:00:00Z
        consumption:
          type: array
          description: All consumption entries for the given date range
          example:
          - consumptionType: etl-compute
            dimensions:
              installationId: 1850bc49-c4a4-4f35-ab3c-827b849548b9
            credits: 24
          - consumptionType: orchestration
            dimensions:
              pipelineName: projects/my-project/pipelines/daily-load.orch.yaml
              projectId: d46a46c2-7ac4-41a8-b619-4ca34a7f003f
              environment: default
            credits: 16.2
          - consumptionType: transformation
            dimensions:
              pipelineName: projects/my-project/pipelines/enrich-customers.tran.yaml
              projectId: d46a46c2-7ac4-41a8-b619-4ca34a7f003f
              environment: default
            credits: 9.6
          - consumptionType: streaming
            dimensions:
              pipelineName: projects/my-project/pipelines/cdc-stream
              projectId: a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d
            credits: 9.6
          - consumptionType: data-loader-batch
            dimensions:
              pipelineId: "1732786524"
            credits: 50
          - consumptionType: data-loader-cdc
            dimensions:
              pipelineId: "1732786525"
            credits: 60
          - consumptionType: dpc-users
            dimensions:
              userEmail: jane.doe@example.com
            credits: 70
          items:
            $ref: "#/components/schemas/ConsumptionEntry"
    ConsumptionDimensions:
      type: object
      properties:
        environment:
          type: string
          description: "For orchestration and transformation consumption, the name\
            \ of the environment in which the pipeline ran"
          example: default
        installationId:
          type: string
          description: "For ETL consumption, the identifier of the installation"
          example: 1850bc49-c4a4-4f35-ab3c-827b849548b9
        pipelineId:
          type: string
          description: "For data loading consumption, the identifier of the pipeline"
          example: "1732786522"
        pipelineName:
          type: string
          description: "For orchestration, transformation and streaming consumption,\
            \ the full path of the pipeline (e.g. projects/my-project/pipelines/daily-load.orch.yaml).\
            \ Values exceeding 255 characters may be middle-truncated (e.g. projects/very/deep/.../my_pipeline.orch.yaml)"
          example: projects/my-project/pipelines/my-data-pipeline
        projectId:
          type: string
          description: "For orchestration, transformation and streaming consumption,\
            \ the identifier of the containing project (returned alongside `pipelineName`)"
          example: d46a46c2-7ac4-41a8-b619-4ca34a7f003f
        userEmail:
          type: string
          description: "For monthly active DPC users consumption, the email address\
            \ of the Matillion user"
          example: example@gmail.com
    ConsumptionEntry:
      type: object
      properties:
        consumptionType:
          type: string
          description: The type of credit consumption
          examples:
          - etl-compute
          - orchestration
          - transformation
          - streaming
          - data-loader-batch
          - data-loader-cdc
          - dpc-users
        credits:
          type: number
          format: double
          description: The number of credits consumed for this combination of type
            and dimensions
          example: 28.4
        dimensions:
          $ref: "#/components/schemas/ConsumptionDimensions"
          description: "Dimensions used to group this consumption entry; these are\
            \ characteristics of the pipeline, what it belongs to or where it ran"
          example:
            pipelineName: projects/my-project/pipelines/daily-load.orch.yaml
            projectId: d46a46c2-7ac4-41a8-b619-4ca34a7f003f
            environment: default
    CreateAgentRequest:
      type: object
      properties:
        agentType:
          type: string
          description: The type of Agent being created
          enum:
          - data_productivity_cloud
          - streaming
          example: data_productivity_cloud
          minLength: 1
        cloudProvider:
          type: string
          description: |-
            The cloud provider of the Agent to be created. The Cloud Provider must correspond with the chosen Agent Type.

            Available cloud providers are:
            - aws - Available for both data_productivity_cloud and streaming Agent Types.
            - azure - Available for both data_productivity_cloud and streaming Agent Types.
            - snowflake - Only available for data_productivity_cloud Agent Types.
            - gcp - Available for both data_productivity_cloud and streaming Agent Types.
            - google_cloud - Alias for gcp, available for both data_productivity_cloud and streaming Agent Types.
            - maia - Only available for data_productivity_cloud Agent Types. Creates a Maia-hosted runner managed by Matillion.
          enum:
          - aws
          - azure
          - snowflake
          - google_cloud
          - gcp
          - maia
          example: aws
          minLength: 1
        deployment:
          type: string
          description: |-
            The deployment type of the Agent to be created. The Deployment Type must correspond with the chosen Agent Type and Cloud Provider.

            Available deployment types are:
            - fargate - Available for AWS Cloud Provider, for both data_productivity_cloud and streaming Agent Types.
            - eks - Available for AWS Cloud provider, for both data_productivity_cloud and streaming Agent Types.
            - container app - Available for Azure Cloud provider, only for data_productivity_cloud Agent Types.
            - aci - Available for Azure Cloud provider, only for streaming Agent Types.
            - aks - Available for Azure Cloud provider, for both data_productivity_cloud and streaming Agent Types.
            - native app - Available for Snowflake Cloud provider, only for data_productivity_cloud Agent Types.
            - gke - Available for GCP Cloud provider, for both data_productivity_cloud and streaming Agent Types.
            - gce - Available for GCP Cloud provider, only for streaming Agent Types.
            - custom_k8s - Only available for Maia cloud provider, only for data_productivity_cloud Agent Types.
          enum:
          - fargate
          - eks
          - container app
          - aks
          - aci
          - native app
          - gke
          - gce
          - custom_k8s
          example: fargate
          minLength: 1
        description:
          type: string
          description: The description to set for the Agent being created
          example: An AWS Agent
          maxLength: 500
          minLength: 0
        enableAutoUpdates:
          type: boolean
          description: |-
            Whether the Agent being created is set to automatically update.

            Note, this is not available for Snowflake Agents or Streaming Agents.
          example: true
        name:
          type: string
          description: The name to set for the Agent being created
          example: AWS Agent
          maxLength: 30
          minLength: 1
        restrictedAccess:
          type: boolean
          description: |-
            Whether the Agent is restricted to a specific set of projects. If set to true, the Agent will only be applicable to projects it is scoped to have access to.

            Note, this cannot be set for Streaming Agents.
          example: true
        trackName:
          type: string
          description: |-
            The version track applied to the Agent being created. This is not required for Streaming Agents.

            Note, Snowflake Agents can only be on the STABLE track.
          enum:
          - current
          - stable
          example: current
      required:
      - agentType
      - cloudProvider
      - deployment
      - name
    CreateAzureDevOpsRepositoryRequest:
      allOf:
      - $ref: "#/components/schemas/CreateRepositoryRequest"
      - type: object
        properties:
          providerParameters:
            $ref: "#/components/schemas/AzureDevOpsProviderParameters"
            description: "${repositories.create.providerParameters.desc}"
      required:
      - provider
      - providerParameters
      - repositoryName
    CreateConnectionRequest:
      type: object
      description: The connection creation request containing all necessary details
      properties:
        authProvider:
          type: string
          description: The authentication provider
          example: salesforce
        authType:
          type: string
          description: The kind of secret being referenced. See the combinations table
            in the operation description for valid values per connection type.
          enum:
          - GENERIC_SECRET
          - CLOUD_PROVIDER_SECRET
          - OAUTH_USER_TOKENS
          - OAUTH_AUTHORIZATION_CODE
          - OAUTH_CLIENT_CRED
          - COMPOSITE_TOKEN
          - OAUTH_1_0_X_ADS
          example: GENERIC_SECRET
        connectionDetails:
          $ref: "#/components/schemas/ConnectionDetails"
          description: |-
            Provides the definition of the values of the connection which will vary by connection type. Includes:
            - Location of any sensitive values (secret location and name)
            - Any non-sensitive values (url, username)
        name:
          type: string
          description: The name of the connection
          example: my-secret
          minLength: 1
        platformConnectionType:
          type: string
          description: |-
            The different types of connection that can be created:
            - `COMPONENT_BASIC` — connect a component to a data source, API, or SaaS application using a secret stored in your secrets manager.
            - `CLOUD_PLATFORM_CREDENTIALS` — give a project access to a cloud provider (AWS, Azure, GCP) using cloud credentials stored in your secrets manager.
          enum:
          - COMPONENT_BASIC
          - CLOUD_PLATFORM_CREDENTIALS
          example: COMPONENT_BASIC
      required:
      - authType
      - name
      - platformConnectionType
    CreateDefaultDWHConnectionRequest:
      type: object
      properties:
        authProvider:
          type: string
          description: The authentication provider to use for the connection
          enum:
          - SNOWFLAKE
          - REDSHIFT
          - BIGQUERY
          - DATABRICKS
          examples:
          - SNOWFLAKE
          - REDSHIFT
          - BIGQUERY
          - DATABRICKS
        authType:
          type: string
          description: The authentication type to use for the connection
          enum:
          - KEY_PAIR
          - PASSWORD
          - NONE
          - PERSONAL_ACCESS_TOKEN
          - OAUTH_CLIENT_CREDENTIALS
          examples:
          - KEY_PAIR
          - PASSWORD
          - NONE
          - PERSONAL_ACCESS_TOKEN
          - OAUTH_CLIENT_CREDENTIALS
        name:
          type: string
          description: The name of the default data warehouse connection
          example: DWH-Connection-1
          minLength: 1
        platformConnectionType:
          type: string
          description: The platform type of date warehouse connection to create
          enum:
          - DWH
          - COMPONENT_BASIC
          - CLOUD_PLATFORM_CREDENTIALS
          example: DWH
      required:
      - authProvider
      - authType
      - name
      - platformConnectionType
    CreateEnvironmentOverrideRequest:
      type: object
      description: The environment override request containing all necessary details
      properties:
        authType:
          type: string
          description: "The kind of secret being referenced. Must match the parent\
            \ project connection's `authType`. See the combinations table on `POST\
            \ /v1/projects/{projectId}/connections` for valid values per connection\
            \ type."
          enum:
          - GENERIC_SECRET
          - CLOUD_PROVIDER_SECRET
          - OAUTH_USER_TOKENS
          - OAUTH_AUTHORIZATION_CODE
          - OAUTH_CLIENT_CRED
          - COMPOSITE_TOKEN
          - OAUTH_1_0_X_ADS
          example: OAUTH_CLIENT_CRED
        connectionName:
          type: string
          description: The name of the connection to override
          example: Salesforce
          minLength: 1
        connectionOverrides:
          $ref: "#/components/schemas/ConnectionOverrideDetails"
          description: Connection override configuration
        environmentName:
          type: string
          description: The name of the environment to apply the override in
          example: PROD
          minLength: 1
      required:
      - authType
      - connectionName
      - environmentName
    CreateEnvironmentRequest:
      type: object
      properties:
        connectionOverrides:
          type: array
          description: Connection overrides for the environment
          items:
            $ref: "#/components/schemas/ConnectionOverride"
          maxItems: 200
          minItems: 1
        defaultAgentId:
          type: string
          description: The UUID of the default agent for this environment
        defaultConnections:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: string
          description: The default connections for the new environment
        defaultUserAccessLevel:
          type: string
          description: The default role project users will have on the environment
          examples:
          - default
          - admin
          - runner
          - readOnly
          - noAccess
        description:
          type: string
          description: The description of the new environment
          example: My new Environment
          maxLength: 1000
          minLength: 0
        displayName:
          description: The display name of the new environment
          example: Environment 1
        inheritProjectDefaults:
          type: boolean
          description: Determines whether the environment inherits the project's default
            settings
        name:
          type: string
          description: The name of the new environment
          example: Environment-1
          minLength: 1
      required:
      - connectionOverrides
      - defaultAgentId
      - defaultConnections
      - defaultUserAccessLevel
      - name
    CreateGitHubRepositoryRequest:
      allOf:
      - $ref: "#/components/schemas/CreateRepositoryRequest"
      - type: object
        properties:
          providerParameters:
            $ref: "#/components/schemas/GitHubProviderParameters"
            description: "${repositories.create.providerParameters.desc}"
      required:
      - provider
      - providerParameters
      - repositoryName
    CreateGitLabRepositoryRequest:
      allOf:
      - $ref: "#/components/schemas/CreateRepositoryRequest"
      - type: object
        properties:
          providerParameters:
            $ref: "#/components/schemas/GitLabProviderParameters"
            description: "${repositories.create.providerParameters.desc}"
      required:
      - provider
      - providerParameters
      - repositoryName
    CreateProjectRequest:
      type: object
      properties:
        agentDeploymentType:
          type: string
          description: The deployment type of the agent
          enum:
          - HYBRID
          - FULL_SAAS
        description:
          type: string
          description: The description of the new project
          example: My new Data Productivity Cloud project
          maxLength: 1000
          minLength: 0
        name:
          type: string
          description: The name of the new project
          example: Project-1
          maxLength: 255
          minLength: 1
        warehouse:
          type: string
          description: The target data warehouse for the project
          enum:
          - SNOWFLAKE
          - REDSHIFT
          - BIGQUERY
          - DATABRICKS
      required:
      - agentDeploymentType
      - name
      - warehouse
    CreateProjectResponse:
      type: object
      properties:
        projectId:
          type: string
          format: uuid
    CreateProjectVariableEnvironmentOverridesRequest:
      type: object
      properties:
        overrides:
          type: array
          items:
            $ref: "#/components/schemas/EnvironmentOverrideRequest"
          minItems: 1
      required:
      - overrides
    CreateProjectVariableEnvironmentOverridesResponse:
      type: object
      properties:
        failedOverrides:
          type: array
          items:
            $ref: "#/components/schemas/FailedOverride"
        successfulOverrides:
          type: array
          items:
            $ref: "#/components/schemas/EnvironmentOverride"
        type:
          type: string
          enum:
          - NUMBER
          - TEXT
          - DATETIME
        variableName:
          type: string
    CreateProjectVariableRequest:
      type: object
      properties:
        behaviour:
          type: string
          enum:
          - COPIED
          - SHARED
        description:
          type: string
          maxLength: 255
          minLength: 0
        name:
          type: string
        supportsDoubleResolution:
          type: boolean
        type:
          type: string
          enum:
          - NUMBER
          - TEXT
          - DATETIME
        value:
          $ref: "#/components/schemas/JsonNode"
      required:
      - behaviour
      - type
    CreateProjectVariableResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        value:
          $ref: "#/components/schemas/JsonNode"
    CreateRepositoryRequest:
      type: object
      discriminator:
        mapping:
          azure-devops: "#/components/schemas/CreateAzureDevOpsRepositoryRequest"
          github: "#/components/schemas/CreateGitHubRepositoryRequest"
          gitlab: "#/components/schemas/CreateGitLabRepositoryRequest"
        propertyName: provider
      properties:
        provider:
          type: string
          description: The Git provider type
          enum:
          - github
          - gitlab
          - azure-devops
          example: github
        providerParameters:
          $ref: "#/components/schemas/ProviderParameters"
          description: Provider-specific parameters. See the provider-specific request
            schema for field details.
        repositoryName:
          type: string
          description: The name of the repository
          example: my-project-repository
          maxLength: 255
          minLength: 1
      required:
      - provider
      - repositoryName
    CreateTaskRequest:
      type: object
      properties:
        agentConfig:
          description: Configuration specifying the agent type and its parameters
          oneOf:
          - $ref: "#/components/schemas/DataEngineerAgentConfig"
        grantedPermissions:
          type:
          - array
          - "null"
          description: Permissions pre-granted to the agent for this task. Each entry
            must be unique
          items:
            $ref: "#/components/schemas/AllowedTool"
        message:
          type: string
          description: The instruction or question to send to the agent
          example: Build a pipeline to load sales data from S3 into Snowflake
          minLength: 1
      required:
      - agentConfig
      - message
    CreateTaskResponse:
      type: object
      properties:
        agentName:
          type: string
          description: The name of the agent handling the task
          example: data_engineer_agent
        createdAt:
          type: string
          format: date-time
          description: The date and time the task was created
          example: 2024-01-15T10:30:00Z
        status:
          type: string
          description: The current status of the task
          enum:
          - RUNNING
          - STOPPED
          - STOPPING
          - ERRORED
          example: RUNNING
        taskId:
          type: string
          format: uuid
          description: The unique identifier of the created task
          example: 550e8400-e29b-41d4-a716-446655440000
    DataEngineerAgentConfig:
      allOf:
      - $ref: "#/components/schemas/AgentConfig"
      - type: object
        properties:
          environmentName:
            type: string
            description: The name of the environment to use for execution
            example: development
            minLength: 1
          generateBranch:
            type: boolean
            description: Whether the agent should auto-generate a new branch for its
              changes
            example: true
          graphId:
            type:
            - string
            - "null"
            description: The ID of the pipeline graph the agent will work on
            example: my-pipeline
          mode:
            type: string
            description: The execution mode. ACT allows the agent to make changes;
              PLAN produces a plan only
            enum:
            - PLAN
            - ACT
            example: ACT
          name:
            type: string
            description: The agent type identifier. Must be "data_engineer_agent"
            example: data_engineer_agent
            minLength: 1
          projectId:
            type: string
            format: uuid
            description: The ID of the project the agent will work within
            example: 550e8400-e29b-41d4-a716-446655440001
          sourceBranchName:
            type: string
            description: The branch the agent will read from
            example: main
            minLength: 1
          targetBranchName:
            type:
            - string
            - "null"
            description: The branch the agent will write changes to. Required unless
              generateBranch is true
            example: feature/my-pipeline
          workingDirectory:
            type:
            - string
            - "null"
            description: The working directory within the project for the agent
            example: /pipelines
      required:
      - environmentName
      - mode
      - name
      - projectId
      - sourceBranchName
    DataEngineerAgentConfigOverride:
      allOf:
      - $ref: "#/components/schemas/AgentConfigOverride"
      - type: object
        properties:
          mode:
            type:
            - string
            - "null"
            enum:
            - PLAN
            - ACT
          name:
            type: string
            minLength: 1
          targetBranchName:
            type:
            - string
            - "null"
      required:
      - name
    DefaultVaultLocation:
      allOf:
      - $ref: "#/components/schemas/VaultLocation"
      title: Default Vault
    Email:
      type: object
      properties:
        display:
          type: string
        primary:
          type: boolean
        type:
          type: string
        value:
          type: string
    EnhancedScimGroup:
      type: object
      properties:
        accountId:
          type: string
          description: The unique identifier of the Matillion account this group belongs
            to
        accountName:
          type: string
          description: The human-readable name of the Matillion account
        displayName:
          type: string
        environment:
          type: string
          description: The unique identifier of the environment this group is associated
            with
        externalId:
          type: string
        id:
          type: string
          maxLength: 2147483647
          minLength: 1
        members:
          type: array
          items:
            $ref: "#/components/schemas/GroupMembership"
        meta:
          $ref: "#/components/schemas/Meta"
        projectId:
          type: string
          format: uuid
          description: The unique identifier of the project this group is associated
            with
        projectName:
          type: string
          description: The human-readable name of the project
        role:
          type: string
          description: The role assigned to this group within the Matillion platform
        schemas:
          type: array
          items:
            type: string
            xml:
              name: schemas
          maxItems: 2147483647
          minItems: 1
          uniqueItems: true
      required:
      - meta
      xml:
        name: Group
    Entitlement:
      type: object
      properties:
        display:
          type: string
        primary:
          type: boolean
        type:
          type: string
        value:
          type: string
    EnvironmentConnectionOverrideResponse:
      type: object
      properties:
        authProvider:
          type: string
          description: The authentication provider
          example: NONE
        authType:
          type: string
          description: The authentication type
          enum:
          - GENERIC_SECRET
          - CLOUD_PROVIDER_SECRET
          - OAUTH_USER_TOKENS
          - OAUTH_AUTHORIZATION_CODE
          - OAUTH_CLIENT_CRED
          example: GENERIC_SECRET
        connectionOverrides:
          $ref: "#/components/schemas/ConnectionOverrideDetails"
          description: Connection override configuration
        createdBy:
          type: string
          description: The user who created the connection
        createdDate:
          type: string
          format: date-time
          description: The date and time when the connection was created
        name:
          type: string
          description: The name of the connection
          example: my-jira-connection
        platformConnectionType:
          type: string
          description: The platform connection type
          enum:
          - DWH
          - COMPONENT_BASIC
          - CLOUD_PLATFORM_CREDENTIALS
          example: COMPONENT_BASIC
        projectId:
          type: string
          format: uuid
          description: The project ID this connection belongs to
    EnvironmentOverride:
      type: object
      properties:
        environmentName:
          type: string
        value:
          $ref: "#/components/schemas/JsonNode"
    EnvironmentOverrideRequest:
      type: object
      properties:
        environmentName:
          type: string
        value:
          $ref: "#/components/schemas/JsonNode"
    EnvironmentSummary:
      type: object
      properties:
        defaultAgentId:
          type: string
          description: The UUID of the agent associated with the environment as set
            by the user
          example: 3fa85f64-5717-4562-b3fc-2c963f66afaf
        defaultAgentName:
          type: string
          description: The name of the agent associated with the environment as set
            by the user
          example: Dev Agent
        name:
          type: string
          description: The name of the environment as set by the user
          example: DPC Environment Dev
    ErrorDetail:
      type: object
      properties:
        message:
          type: string
          description: The error message describing what went wrong
          example: Rule configuration is invalid
        type:
          type: string
          description: The error type category
          example: designer/invalid-rule-configuration
    EtlUsersConsumption:
      type: object
      properties:
        chargedUsers:
          type: array
          description: "The users whose activity contributed credit charges. This\
            \ does not include users who contributed to the included monthly users\
            \ allowance, if applicable."
          example:
          - username: User 6
          - username: User 7
          items:
            $ref: "#/components/schemas/ChargedEtlUser"
        consumedBefore:
          type: string
          format: date-time
          description: Date+time before which results are included (UTC) (exclusive)
          example: 2024-01-31T00:00:00Z
        consumedFrom:
          type: string
          format: date-time
          description: First date+time included in results (UTC) (inclusive)
          example: 2024-01-01T00:00:00Z
        credits:
          type: number
          format: double
          description: The total credits charged during this period
          example: 100
    FailedOverride:
      type: object
      properties:
        environmentName:
          type: string
        reason:
          type: string
    FilterResponse:
      type: object
      properties:
        pageRequest:
          $ref: "#/components/schemas/PageRequest"
        resources:
          type: array
          items: {}
        totalResults:
          type: integer
          format: int32
    GcpVaultLocation:
      allOf:
      - $ref: "#/components/schemas/VaultLocation"
      - type: object
        properties:
          gcpProjectId:
            type: string
      title: GCP Secret Manager
    GetTaskMessagesResponse:
      type: object
      properties:
        more:
          type: string
          description: Token for fetching the next batch of results for this query;
            if omitted then there are no more.
        results:
          type: array
          description: The list of events for the task
          items:
            $ref: "#/components/schemas/TaskEvent"
    GetTaskResponse:
      type: object
      properties:
        agentConfig:
          description: The configuration of the agent handling the task
          oneOf:
          - $ref: "#/components/schemas/DataEngineerAgentConfig"
        createdAt:
          type: string
          format: date-time
          description: The date and time the task was created
          example: 2024-01-15T10:30:00Z
        description:
          type: string
          description: A short description of what the agent was asked to do
          example: Build a pipeline to load sales data from S3 into Snowflake
        grantedPermissions:
          type: array
          description: Permissions that have been granted to the agent for this task
          items:
            $ref: "#/components/schemas/AllowedTool"
        modifiedAt:
          type: string
          format: date-time
          description: The date and time the task was last modified
          example: 2024-01-15T10:45:00Z
        pendingDecisions:
          type: array
          description: Decisions awaiting approval before the agent can proceed
          items:
            $ref: "#/components/schemas/PendingPermission"
        status:
          type: string
          description: The current status of the task
          enum:
          - RUNNING
          - STOPPED
          - STOPPING
          - ERRORED
          example: STOPPED
        taskId:
          type: string
          format: uuid
          description: The unique identifier of the task
          example: 550e8400-e29b-41d4-a716-446655440000
    GetTasksResponse:
      type: object
      properties:
        page:
          type: integer
          format: int32
          description: The current page number (0-indexed)
        size:
          type: integer
          format: int32
          description: The number of tasks per page
        tasks:
          type: array
          description: The list of agent tasks for the account
          items:
            $ref: "#/components/schemas/TaskSummary"
        total:
          type: integer
          format: int64
          description: The total number of matching tasks
    GitHubProviderParameters:
      type: object
      properties:
        ownerName:
          type: string
          description: The GitHub organization or user name that owns the repository
          example: matillion
          minLength: 1
      required:
      - ownerName
    GitLabProviderParameters:
      type: object
      properties:
        repositoryId:
          type: string
          description: The GitLab repository ID (numeric)
          example: "123456789"
          minLength: 1
          pattern: \d+
      required:
      - repositoryId
    GroupMembership:
      type: object
      properties:
        display:
          type: string
        ref:
          type: string
          xml:
            name: $ref
        type:
          type: string
          enum:
          - USER
          - GROUP
        value:
          type: string
    IgnoredAsset:
      type: object
      properties:
        name:
          type: string
          description: Name of the asset that has been ignored
        reason:
          type: string
          description: Reason the asset was ignored
    Im:
      type: object
      properties:
        display:
          type: string
        primary:
          type: boolean
        type:
          type: string
        value:
          type: string
    IntervalExpression:
      type: object
      properties:
        interval:
          type: integer
          format: int32
        unit:
          type: string
    JsonNode: {}
    ListSharedPipelinesResponse:
      type: object
      properties:
        page:
          type: integer
          format: int32
          description: The 0-indexed page number of the returned results
          example: 0
        results:
          type: array
          description: "Page of published shared pipeline items, or empty"
          items:
            $ref: "#/components/schemas/SharedPipelineMetadata"
        size:
          type: integer
          format: int32
          description: The size of each page of results
          example: 20
        total:
          type: integer
          format: int64
          description: Total number of available published shared pipeline items across
            all pages
          example: 42
    MatillionHostedSecretReferenceRequest:
      allOf:
      - $ref: "#/components/schemas/SecretReferenceRequest"
      - type: object
        properties:
          agentId:
            type: string
            description: "${project.secret-reference-request.agentId.desc}"
            example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
          secretValue:
            $ref: "#/components/schemas/JsonNode"
            description: The json containing the secret value
            example:
              password: password-plain-text-value
      description: Secret Reference request body for creating a new secret reference
        for a Matillion hosted project
      required:
      - agentId
      - agentType
      - secretReferenceType
      - secretValue
    MatillionHostedVaultLocation:
      allOf:
      - $ref: "#/components/schemas/VaultLocation"
      title: Matillion-hosted Vault
    Meta:
      type: object
      properties:
        created:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        location:
          type: string
        resourceType:
          type: string
          maxLength: 2147483647
          minLength: 1
        version:
          type: string
    Name:
      type: object
      properties:
        familyName:
          type: string
        formatted:
          type: string
        givenName:
          type: string
        honorificPrefix:
          type: string
        honorificSuffix:
          type: string
        middleName:
          type: string
    PageRequest:
      type: object
      properties:
        count:
          type: integer
          format: int32
        startIndex:
          type: integer
          format: int32
    PagedResultList:
      type: object
      properties:
        page:
          type: integer
          format: int32
          description: The 0-indexed page number of the returned results.
          example: 1
        results:
          type: array
          description: Page of results or empty.
          items: {}
        size:
          type: integer
          format: int32
          description: The size of each page of results.
          example: 50
        total:
          type: integer
          format: int64
          description: Total number of available results across all pages.
          example: 472
    PagedResultListAgentSummary:
      type: object
      properties:
        page:
          type: integer
          format: int32
          description: The 0-indexed page number of the returned results.
          example: 1
        results:
          type: array
          description: Page of results or empty.
          items:
            $ref: "#/components/schemas/AgentSummary"
        size:
          type: integer
          format: int32
          description: The size of each page of results.
          example: 50
        total:
          type: integer
          format: int64
          description: Total number of available results across all pages.
          example: 472
    PagedResultListArtifactDetails:
      type: object
      properties:
        page:
          type: integer
          format: int32
          description: The 0-indexed page number of the returned results.
          example: 1
        results:
          type: array
          description: Page of results or empty.
          items:
            $ref: "#/components/schemas/ArtifactDetails"
        size:
          type: integer
          format: int32
          description: The size of each page of results.
          example: 50
        total:
          type: integer
          format: int64
          description: Total number of available results across all pages.
          example: 472
    PagedResultListAugmentedAuditEventResponse:
      type: object
      properties:
        page:
          type: integer
          format: int32
          description: The 0-indexed page number of the returned results.
          example: 1
        results:
          type: array
          description: Page of results or empty.
          items:
            $ref: "#/components/schemas/AugmentedAuditEventResponse"
        size:
          type: integer
          format: int32
          description: The size of each page of results.
          example: 50
        total:
          type: integer
          format: int64
          description: Total number of available results across all pages.
          example: 472
    PagedResultListEnvironmentSummary:
      type: object
      properties:
        page:
          type: integer
          format: int32
          description: The 0-indexed page number of the returned results.
          example: 1
        results:
          type: array
          description: Page of results or empty.
          items:
            $ref: "#/components/schemas/EnvironmentSummary"
        size:
          type: integer
          format: int32
          description: The size of each page of results.
          example: 50
        total:
          type: integer
          format: int64
          description: Total number of available results across all pages.
          example: 472
    PagedResultListPipelineExecutionStepResult:
      type: object
      properties:
        page:
          type: integer
          format: int32
          description: The 0-indexed page number of the returned results.
          example: 1
        results:
          type: array
          description: Page of results or empty.
          items:
            $ref: "#/components/schemas/PipelineExecutionStepResult"
        size:
          type: integer
          format: int32
          description: The size of each page of results.
          example: 50
        total:
          type: integer
          format: int64
          description: Total number of available results across all pages.
          example: 472
    PagedResultListPipelineSummary:
      type: object
      properties:
        page:
          type: integer
          format: int32
          description: The 0-indexed page number of the returned results.
          example: 1
        results:
          type: array
          description: Page of results or empty.
          items:
            $ref: "#/components/schemas/PipelineSummary"
        size:
          type: integer
          format: int32
          description: The size of each page of results.
          example: 50
        total:
          type: integer
          format: int64
          description: Total number of available results across all pages.
          example: 472
    PagedResultListProjectSummary:
      type: object
      properties:
        page:
          type: integer
          format: int32
          description: The 0-indexed page number of the returned results.
          example: 1
        results:
          type: array
          description: Page of results or empty.
          items:
            $ref: "#/components/schemas/ProjectSummary"
        size:
          type: integer
          format: int32
          description: The size of each page of results.
          example: 50
        total:
          type: integer
          format: int64
          description: Total number of available results across all pages.
          example: 472
    PagedResultListProjectVariable:
      type: object
      properties:
        page:
          type: integer
          format: int32
          description: The 0-indexed page number of the returned results.
          example: 1
        results:
          type: array
          description: Page of results or empty.
          items:
            $ref: "#/components/schemas/ProjectVariable"
        size:
          type: integer
          format: int32
          description: The size of each page of results.
          example: 50
        total:
          type: integer
          format: int64
          description: Total number of available results across all pages.
          example: 472
    PagedResultListScheduleSummary:
      type: object
      properties:
        page:
          type: integer
          format: int32
          description: The 0-indexed page number of the returned results.
          example: 1
        results:
          type: array
          description: Page of results or empty.
          items:
            $ref: "#/components/schemas/ScheduleSummary"
        size:
          type: integer
          format: int32
          description: The size of each page of results.
          example: 50
        total:
          type: integer
          format: int64
          description: Total number of available results across all pages.
          example: 472
    PagedResultListSecretReferenceSummary:
      type: object
      properties:
        page:
          type: integer
          format: int32
          description: The 0-indexed page number of the returned results.
          example: 1
        results:
          type: array
          description: Page of results or empty.
          items:
            $ref: "#/components/schemas/SecretReferenceSummary"
        size:
          type: integer
          format: int32
          description: The size of each page of results.
          example: 50
        total:
          type: integer
          format: int64
          description: Total number of available results across all pages.
          example: 472
    PagedResultListStreamingPipelineDefinition:
      type: object
      properties:
        page:
          type: integer
          format: int32
          description: The 0-indexed page number of the returned results.
          example: 1
        results:
          type: array
          description: Page of results or empty.
          items:
            $ref: "#/components/schemas/StreamingPipelineDefinition"
        size:
          type: integer
          format: int32
          description: The size of each page of results.
          example: 50
        total:
          type: integer
          format: int64
          description: Total number of available results across all pages.
          example: 472
    PatchOp:
      type: object
      description: RFC 7644 SCIM PATCH request body
      properties:
        Operations:
          type: array
          description: Array of patch operations to perform
          items:
            type: object
            additionalProperties: {}
        schemas:
          type: array
          description: List of schemas used in this patch operation
          example:
          - urn:ietf:params:scim:api:messages:2.0:PatchOp
          items:
            type: string
    PendingPermission:
      type: object
      properties:
        permissionMessage:
          $ref: "#/components/schemas/PermissionMessage"
          description: Human-readable details about the permission being requested
        toolId:
          type: string
          description: The unique identifier of the tool invocation
          example: call_abc123
        toolInput:
          $ref: "#/components/schemas/JsonNode"
          description: The input the tool will use if permission is granted
        toolName:
          type: string
          description: The name of the tool requesting permission
          example: execute_sql
        type:
          type: string
          description: The type of decision required
          enum:
          - tool
          - question
          example: tool
    PermissionMessage:
      type: object
      properties:
        body:
          type: string
          description: A detailed description of the permission being requested
          example: "The agent wants to run: SELECT * FROM sales"
        title:
          type: string
          description: A short title summarising the permission request
          example: Execute SQL query
    PhoneNumber:
      type: object
      properties:
        display:
          type: string
        primary:
          type: boolean
        type:
          type: string
        value:
          type: string
    Photo:
      type: object
      properties:
        display:
          type: string
        primary:
          type: boolean
        type:
          type: string
        value:
          type: string
    PipelineExecution:
      type: object
      properties:
        environmentName:
          type: string
          description: The name of the environment the pipeline was executed in
          example: Dev
        finishedAt:
          type: string
          format: date-time
          description: The time the pipeline execution finished
        message:
          type: string
          description: The message returned by the pipeline execution
          example: "\"Rewrite Table\": Success"
        pipelineExecutionId:
          type: string
          description: The ID of the pipeline execution
          example: fd05a6c4-b3e1-4441-86a2-044d5092731d
        pipelineName:
          type: string
          description: The name of the pipeline executed
          example: My Pipeline
        pipelineType:
          type: string
          description: The type of pipeline executed
          example: ORCHESTRATION
        projectId:
          type: string
          description: The id of the project the pipeline was executed in
          example: 4a8a6162-702b-4efc-b2ec-c986e0bc95e4
        scheduleId:
          type: string
          description: The id of the schedule that triggered the pipeline execution
            if trigger is SCHEDULE
          example: 9e2a6b04-ddd7-4bb4-b7dc-56e3b6f3ed43
        startedAt:
          type: string
          format: date-time
          description: The time the pipeline execution started
        status:
          type: string
          description: Status of executed pipeline
          example: RUNNING
        trigger:
          type: string
          description: The trigger of the pipeline execution
          enum:
          - DESIGNER
          - API
          - SCHEDULE
          - SCHEDULE_RUN_NOW
          - UNKNOWN
          example: SCHEDULE
        user:
          type: string
          description: The user that triggered the pipeline execution. Present when
            trigger is DESIGNER or SCHEDULE_RUN_NOW
          example: A User
    PipelineExecutionRequest:
      type: object
      properties:
        agentId:
          type: string
          description: Optional agentId to execute the pipeline. If not specified
            the default agent for the provided environment will be used
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        environmentName:
          type: string
          description: Environment pipeline is published to
          example: Dev Env
          maxLength: 255
          minLength: 0
        executionTag:
          type: string
          description: "Optional execution tag, this allows control of pipeline execution\
            \ concurrency. Only 1 pipeline execution is allowed to run per execution\
            \ tag in a given environment."
          example: tag1
        gridVariables:
          type: object
          additionalProperties:
            type: array
            items:
              type: array
              items:
                type: string
          description: "Optional map of grid variable names to two-dimensional string\
            \ arrays, used to override grid variable values for this execution without\
            \ modifying the published pipeline definition"
        pipelineName:
          type: string
          description: Name of the pipeline to execute
          example: My pipeline
          minLength: 1
        scalarVariables:
          type: object
          additionalProperties:
            type: string
          description: "Optional map of scalar variable names to their override values\
            \ for this execution, without modifying the published pipeline definition"
        versionName:
          type: string
          description: Optional artifact version name of the pipeline to execute.
            If not specified the latest version will be executed
          example: 1.1.0
      required:
      - environmentName
      - pipelineName
    PipelineExecutionResponse:
      type: object
      properties:
        pipelineExecutionId:
          type: string
          format: uuid
          description: Identifier of executing pipeline
          example: 1398aa31-af57-4a6a-9752-27c2e8556c3f
    PipelineExecutionResult:
      type: object
      properties:
        finishedAt:
          type: string
          format: date-time
          description: Time pipeline execution finished
        message:
          type: string
          description: Message returned by pipeline execution
          example: "\"Rewrite Table\": Success"
        startedAt:
          type: string
          format: date-time
          description: Time pipeline execution started
        status:
          type: string
          description: Status of executed pipeline
          example: RUNNING
    PipelineExecutionStatusOnly:
      type: object
      properties:
        status:
          type: string
          description: The current status of the pipeline execution
          enum:
          - RUNNING
          - SUCCESS
          - FAILED
          - CANCELLING
          - CANCELLED
          - FORBIDDEN
          - SKIPPED
          - UNKNOWN
    PipelineExecutionStepResult:
      type: object
      properties:
        childPipeline:
          $ref: "#/components/schemas/ChildPipelineInfo"
          description: Represents a single execution of a pipeline triggered from
            a step of another pipeline.
        id:
          type: string
          description: Unique identifier for this step execution.
          example: b715b912-41fb-402c-ad3b-1807313670e8
        name:
          type: string
          description: The name of this step - usually the name of the component as
            written at design time.
          example: start
        result:
          $ref: "#/components/schemas/PipelineExecutionResult"
          description: Status of step
          example: SUCCESS
    PipelineExecutionUpdateRequest:
      type: object
      properties:
        forceUpdate:
          type: boolean
          description: "If true, the execution will be forcefully terminated"
        status:
          type: string
          description: Cancel pipeline execution by updating status to CANCELLED
          enum:
          - CANCELLED
          example: CANCELLED
      required:
      - forceUpdate
      - status
    PipelineReference:
      type: object
      properties:
        name:
          type: string
          description: Name of the pipeline file (must end with .orch.yaml or .tran.yaml)
          example: mypipeline.orch.yaml
          minLength: 1
          pattern: .*\.(orch|tran)\.yaml$
      required:
      - name
    PipelineSummary:
      type: object
      properties:
        name:
          type: string
          description: The name of the pipeline
          example: My pipeline
        publishedTime:
          type: string
          format: date-time
          description: The time and date the pipeline was created
    ProblemDetail:
      type: object
      properties:
        detail:
          type: string
        instance:
          type: string
        status:
          type: integer
          format: int32
        title:
          type: string
        type:
          type: string
          format: uri
        violations:
          type: array
          items:
            type: string
    ProcessApprovalsResponse:
      type: object
      properties:
        pendingDecisions:
          type: array
          description: The list of decisions still pending after processing
          items:
            $ref: "#/components/schemas/PendingPermission"
    ProjectConnectionResponse:
      type: object
      properties:
        authProvider:
          type: string
          description: The authentication provider
          example: salesforce
        authType:
          type: string
          description: The authentication type
          enum:
          - GENERIC_SECRET
          - CLOUD_PROVIDER_SECRET
          - OAUTH_USER_TOKENS
          - OAUTH_AUTHORIZATION_CODE
          - OAUTH_CLIENT_CRED
          - COMPOSITE_TOKEN
          - OAUTH_1_0_X_ADS
          example: GENERIC_SECRET
        connectionDetails:
          $ref: "#/components/schemas/ConnectionDetailsResponse"
          description: |-
            Provides the definition of the values of the connection which will vary by connection type. Includes:
            - Location of any sensitive values (secret location and name)
            - Any non-sensitive values (url, username)
        createdBy:
          type: string
          description: The user who created the connection
        createdDate:
          type: string
          format: date-time
          description: The date and time when the connection was created
        name:
          type: string
          description: The name of the connection
          example: my-secret
        platformConnectionType:
          type: string
          description: |-
            The different types of connection that can be created:
            - `COMPONENT_BASIC` — connect a component to a data source, API, or SaaS application using a secret stored in your secrets manager.
            - `CLOUD_PLATFORM_CREDENTIALS` — give a project access to a cloud provider (AWS, Azure, GCP) using cloud credentials stored in your secrets manager.
          enum:
          - COMPONENT_BASIC
          - CLOUD_PLATFORM_CREDENTIALS
          example: COMPONENT_BASIC
        projectId:
          type: string
          format: uuid
          description: The project ID this connection belongs to
    ProjectDetails:
      type: object
      properties:
        environments:
          type: array
          description: The list of environments that the agent can access within this
            project
          example:
          - dev
          - prod
          items:
            type: string
    ProjectSummary:
      type: object
      properties:
        description:
          type: string
          description: The description of the project as set by the user
          example: Dev project
        id:
          type: string
          description: The UUID of the project
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        name:
          type: string
          description: The name of the project as set by the user
          example: DPC Etl
    ProjectVariable:
      type: object
      properties:
        behaviour:
          type: string
          enum:
          - COPIED
          - SHARED
        description:
          type: string
        id:
          type: string
          format: uuid
        name:
          type: string
        supportsDoubleResolution:
          type: boolean
        type:
          type: string
          enum:
          - NUMBER
          - TEXT
          - DATETIME
        value:
          $ref: "#/components/schemas/JsonNode"
    ProjectVariableOverrides:
      type: object
      properties:
        overrides:
          type: array
          items:
            $ref: "#/components/schemas/EnvironmentOverride"
        variable:
          $ref: "#/components/schemas/VariableInfo"
    ProviderParameters: {}
    PublishSharedPipelineResponse:
      type: object
      properties:
        ignoredResources:
          type: array
          description: List of resources that were excluded from the published shared
            pipeline and the reasons they were ignored
          items:
            $ref: "#/components/schemas/IgnoredAsset"
        versionName:
          type: string
          description: The version name of the shared pipeline artifact
          example: 1.0.0
    QuestionAnswer:
      type: object
      properties:
        questionIndex:
          type: integer
          format: int32
          description: The zero-based index of the question being answered
          example: 0
        selectedOptions:
          type: array
          description: The selected option values for the question
          example:
          - option_a
          items:
            type: string
            minLength: 1
          minItems: 1
      required:
      - selectedOptions
    QuestionAnswerDecision:
      allOf:
      - $ref: "#/components/schemas/TaskDecision"
      - type: object
        properties:
          answers:
            type: array
            description: The answers to the questions posed by the agent
            items:
              $ref: "#/components/schemas/QuestionAnswer"
            minItems: 1
          id:
            type: string
            format: uuid
            description: The unique identifier of the question decision
            example: 550e8400-e29b-41d4-a716-446655440000
      required:
      - answers
      - id
    ResolverSecretReferenceResponse:
      type: object
      properties:
        resolver_ref:
          type: string
        vaultSecretName:
          type: string
    ReviewRequest:
      type: object
      description: Review request containing pipeline context
      properties:
        branchName:
          type: string
          description: "${review.request.body.branchName}"
          example: main
          minLength: 1
        commitId:
          type: string
          description: The unique commit identifier used to retrieve associated pipelines
          example: 7e3a9c4b2f1d8e6c0a5f9d2b4c7e1a3f4b6c8d0e
          minLength: 1
        dataWarehouseType:
          type: string
          description: "${review.request.body.dataWarehouseType}"
          example: SNOWFLAKE
          minLength: 1
        filePaths:
          type:
          - array
          - "null"
          description: "${review.request.body.filePaths}"
          example:
          - file-1.orch.yaml
          - another/file/with/path/file-2.trans.yaml
          items:
            type: string
      required:
      - branchName
      - commitId
      - dataWarehouseType
    ReviewResponse:
      type: object
      description: Response model for pipeline quality review
      properties:
        excludedFiles:
          type: array
          description: List of files excluded from review due to unsupported file
            extensions
          items:
            type: string
        results:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: "#/components/schemas/RuleResult"
          description: Map of pipeline names to their validation results
        reviewStatus:
          type: string
          description: "Overall review status: PASSED or FAILED. FAILED if any rule\
            \ failed with error enforcement."
          example: PASSED
    Role:
      type: object
      properties:
        display:
          type: string
        primary:
          type: boolean
        type:
          type: string
        value:
          type: string
    RuleResult:
      type: object
      description: Result of a single rule validation
      properties:
        errorDetail:
          $ref: "#/components/schemas/ErrorDetail"
          description: Error details if the validation failed
        ruleName:
          type: string
          description: The name of the rule that was validated
          example: maximum-components
        status:
          type: string
          description: "The validation status of the rule (PASSED, WARNING, FAILED,\
            \ or ERROR).<br><br> PASSED = Rule validation passed with no issues.<br><br>\
            \ WARNING = Rule validation passed with warning enforcement.<br><br> FAILED\
            \ = Rule validation failed with error enforcement.<br><br> ERROR = An\
            \ error occurred during rule validation."
          enum:
          - PASSED
          - WARNING
          - FAILED
          - ERROR
          example: PASSED
        violations:
          type: array
          description: List of specific violations found during validation
          example:
          - component1
          - component2
          items:
            type: string
    ScheduleRequest:
      type: object
      description: Schedule request body for creating a new scheduled request for
        the pipeline
      properties:
        pipeline:
          $ref: "#/components/schemas/ScheduledPipelineExecutionRequest"
          description: Pipeline and environment details
        schedule:
          $ref: "#/components/schemas/ScheduleRequestDetails"
          description: Scheduler details
      required:
      - pipeline
      - schedule
    ScheduleRequestDetails:
      type: object
      description: Schedule request body for creating a new scheduled request
      properties:
        allowConcurrentExecutions:
          type: boolean
          description: An optional boolean flag for whether the scheduled pipeline
            should be allowed to execute concurrently. If set to false the pipeline
            will not be executed if it is already running. This defaults to true if
            not specified.
          example: false
        cronExpression:
          type: string
          description: This is a cronExpression must be provided for a schedule. This
            should be cronExpression in the Quartz format.
          example: 0 * * ? * * *
        cronTimezone:
          type: string
          description: |
            An optional timezone region value to use with the schedule expression.

            If a timezone region is provided, it will be used to in combination with the cronExpression to
            determine the schedule run times in the specified timezone region.

            If no value is specified then this be set to UTC Zulu time to indicate +00:00 from the UTC Offset.
          example: Europe/Dublin
        effectiveFrom:
          type: string
          format: date-time
          description: |
            An optional date time value for when the schedule should start to run. If no value is specified then the
            effective from time will be set to when the schedule is created.

            If a effective from time is specified, this should be specified in the offset date time format as per ISO 8601.
            It should include an offset from UTC, specifying how far ahead or behind UTC the specified time is.

            The format of the date time will be one of the following:
            - "yyyy-MM-dd'T'HH:mm:ss+hh:mm" to represent a time ahead of UTC by +hh:mm
            - "yyyy-MM-dd'T'HH:mm:ss-hh:mm" to represent a time behind of UTC by -hh:mm
            - "yyyy-MM-dd'T'HH:mm:ssZ" to represent a time in UTC

            For example 2022-01-01T12:00:00+02:00 represents two hours ahead of UTC time 2022-01-01T10:00:00Z
          example: 2022-05-19T12:37:44.024+01:00
        name:
          type: string
          description: The user provided name for the schedule
          example: Nightly database backup
        scheduleEnabled:
          type: boolean
          description: An optional enabled boolean flag for whether the schedule should
            be enabled. This defaults to true if not specified.
          example: false
      required:
      - cronExpression
      - name
    ScheduleResponse:
      type: object
      properties:
        scheduleId:
          type: string
          description: The generated unique schedule Id used to identify a specific
            schedule
          example: a2239897-51f8-4c09-83ab-0b2c28bd5a37
    ScheduleSummary:
      type: object
      properties:
        cronExpression:
          type: string
          description: Either an intervalExpression or cronExpression must be present
            for a schedule. This this is formatted in the Quartz format.
          example: 0 * * ? * * *
        cronTimezone:
          type: string
          description: |
            The timezone region value used to determine in what timezone the CronExpression is applied.

            It will be used to in combination with the cronExpression to determine the schedule run times
            in the specified timezone region.
          example: Europe/Dublin
        effectiveFrom:
          type: string
          format: date-time
          description: |2
                A date time value specifying at what point the schedule becomes effective, before this time
                the schedule will not run.

                The format of the date time will be yyyy-MM-dd'T'HH:mm:ssZ and is always returned in UTC
          example: 2022-05-19T12:37:44Z
        environmentName:
          type: string
          description: The environment name to run the pipeline that the schedule
            is associated with
          example: Dev Environment
        gridVariables:
          type: object
          additionalProperties:
            type: array
            items:
              type: array
              items:
                type: string
          description: The map of grid variables to be overridden when ETL pipeline
            is executed
          example:
            grid1:
            - - col1
              - col2
              - col3
            - - col1a
              - col2a
              - col3a
        intervalExpression:
          $ref: "#/components/schemas/IntervalExpression"
          description: Either an intervalExpression or cronExpression must be present
            for a schedule. This intervalExpression details the interval between each
            scheduled run.
        lastRunAt:
          type: string
          format: date-time
          description: |
            A datetime value for when the schedule last ran.

            The format of the date time will be yyyy-MM-dd'T'HH:mm:ssZ and is always returned in UTC
          example: 2022-06-30T01:14:00Z
        name:
          type: string
          description: "An optional name for the schedule, if not provided then it\
            \ will constructed from pipelinename_environment_currentTimestamp"
          example: Nightly database backup
        nextRunAt:
          type: string
          format: date-time
          description: |2
              A datetime value for when the schedule should next run.

              The format of the date time will be yyyy-MM-dd'T'HH:mm:ssZ and is always returned in UTC
          example: 2022-06-30T01:15:00Z
        pipelineName:
          type: string
          description: Name of the pipeline that the schedule is associated with
          example: Nightly database backup
        scalarVariables:
          type: object
          additionalProperties:
            type: string
          description: The map of scalar variables to be overridden when ETL pipeline
            is executed
          example:
            variable1: value1
            variable2: value2
        scheduleEnabled:
          type: boolean
          description: An enabled boolean flag for whether the schedule is enabled.
          example: false
        scheduleId:
          type: string
          description: The generated unique schedule Id used to identify a specific
            schedule
          example: a2239897-51f8-4c09-83ab-0b2c28bd5a37
        versionName:
          type: string
          description: Optional artifact version name of the pipeline that the schedule
            is associated with
          example: 1.2.0
    ScheduledPipelineExecutionRequest:
      type: object
      properties:
        agentId:
          type: string
          description: Optional agentId to execute the pipeline. If not specified
            the default agent for the provided environment will be used
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        environmentName:
          type: string
          description: Environment pipeline is published to
          example: Dev Env
          maxLength: 255
          minLength: 0
        gridVariables:
          type: object
          additionalProperties:
            type: array
            items:
              type: array
              items:
                type: string
          description: "Optional map of grid variable names to two-dimensional string\
            \ arrays, used to override grid variable values for this execution without\
            \ modifying the published pipeline definition"
        pipelineName:
          type: string
          description: Name of the pipeline to execute
          example: My pipeline
          minLength: 1
        scalarVariables:
          type: object
          additionalProperties:
            type: string
          description: "Optional map of scalar variable names to their override values\
            \ for this execution, without modifying the published pipeline definition"
        versionName:
          type: string
          description: Optional artifact version name of the pipeline to execute.
            If not specified the latest version will be executed
          example: 1.1.0
      required:
      - environmentName
      - pipelineName
    ScimGroup:
      type: object
      properties:
        displayName:
          type: string
        externalId:
          type: string
        id:
          type: string
          maxLength: 2147483647
          minLength: 1
        members:
          type: array
          items:
            $ref: "#/components/schemas/GroupMembership"
        meta:
          $ref: "#/components/schemas/Meta"
        schemas:
          type: array
          items:
            type: string
            xml:
              name: schemas
          maxItems: 2147483647
          minItems: 1
          uniqueItems: true
      required:
      - meta
      xml:
        name: Group
    ScimUser:
      type: object
      properties:
        active:
          type: boolean
        addresses:
          type: array
          items:
            $ref: "#/components/schemas/Address"
        displayName:
          type: string
        emails:
          type: array
          items:
            $ref: "#/components/schemas/Email"
        entitlements:
          type: array
          items:
            $ref: "#/components/schemas/Entitlement"
        externalId:
          type: string
        groups:
          type: array
          items:
            $ref: "#/components/schemas/UserGroup"
        id:
          type: string
          maxLength: 2147483647
          minLength: 1
        ims:
          type: array
          items:
            $ref: "#/components/schemas/Im"
        locale:
          type: string
        meta:
          $ref: "#/components/schemas/Meta"
        name:
          $ref: "#/components/schemas/Name"
        nickName:
          type: string
        password:
          type: string
        phoneNumbers:
          type: array
          items:
            $ref: "#/components/schemas/PhoneNumber"
        photos:
          type: array
          items:
            $ref: "#/components/schemas/Photo"
        preferredLanguage:
          type: string
        profileUrl:
          type: string
        roles:
          type: array
          items:
            $ref: "#/components/schemas/Role"
        schemas:
          type: array
          items:
            type: string
            xml:
              name: schemas
          maxItems: 2147483647
          minItems: 1
          uniqueItems: true
        timezone:
          type: string
        title:
          type: string
        userName:
          type: string
        userType:
          type: string
        x509Certificates:
          type: array
          items:
            $ref: "#/components/schemas/X509Certificate"
      required:
      - meta
      xml:
        name: User
    ScrollResultListPipelineExecution:
      type: object
      properties:
        more:
          type: string
          description: Token for fetching the next batch of results for this query;
            if omitted then there are no more.
        results:
          type: array
          description: Results of query
          items:
            $ref: "#/components/schemas/PipelineExecution"
    ScrollResultListTestExecution:
      type: object
      properties:
        more:
          type: string
          description: Token for fetching the next batch of results for this query;
            if omitted then there are no more.
        results:
          type: array
          description: Results of query
          items:
            $ref: "#/components/schemas/TestExecution"
    SecretReferenceRequest:
      type: object
      description: Secret Reference request body for creating a new secret reference
        for a project
      discriminator:
        propertyName: agentType
      properties:
        agentType:
          type: string
          description: The type of agent associated with the project the secret reference
            will be created in
          enum:
          - AWS
          - Azure
          - Matillion hosted
          example: AWS
        description:
          type: string
          description: The description of the secret reference
          example: My secret reference
        secretReferenceType:
          type: string
          description: The type of secret reference
          enum:
          - PASSWORD
          example: PASSWORD
      required:
      - agentType
      - secretReferenceType
    SecretReferenceSummary:
      type: object
      properties:
        description:
          type: string
          description: The description of the secret reference as set by the user
        name:
          type: string
          description: The name of the Data Productivity Cloud secret reference
          example: Data-Productivity-Cloud-secret-name
        provider:
          type: string
          description: The Cloud Provider of the secret location
        secretKey:
          type: string
          description: The key of the secret within the Cloud Provider
          example: aws-secret-key
        secretName:
          type: string
          description: The name of the secret within the Cloud Provider
          example: aws-secret-name
        type:
          type: string
          description: The type of secret reference
          example: PASSWORD
        vaultName:
          type: string
          description: The name of the chosen Azure vault
        vaultType:
          type: string
          description: The Cloud Provider of the secret location
          example: AWS
    SecretValueRequest:
      type: object
      properties:
        key:
          type: string
          description: |2
               The optional top-level property to use inside the (json-valued) secret.
             This is used to build a reference to the secret being stored so it can be used in pipelines.
            If you are storing a single scalar
             secret, this can be the top-level property of the value being stored.
             Note that nested properties such as "parent.child" cannot be referenced here.

             If you are storing a complex JSON
             object and want to resolve the whole object, this should not be provided to allow the
             resolver to return the whole object from the secret.
          examples:
          - password
        name:
          type: string
          description: |
            The name of the secret to store. This is an identifier for the secret and should be
            unique in the project.
          example: my-secret
          minLength: 1
        type:
          type: string
          description: "The type of the secret to store, such as PASSWORD or OAUTH_CLIENT_CREDENTIALS."
          example: PASSWORD
        value:
          $ref: "#/components/schemas/JsonNode"
          description: The secret value to write into the customer vault. This should
            be in JSON object format.
          examples:
          - clientId: my-client-id
            clientSecret: "12345"
          - password: P@ssw0rd123
      required:
      - name
    SendMessageRequest:
      type: object
      properties:
        agentConfig:
          oneOf:
          - $ref: "#/components/schemas/DataEngineerAgentConfigOverride"
        grantedPermissions:
          type:
          - array
          - "null"
          items:
            $ref: "#/components/schemas/AllowedTool"
        message:
          type: string
          minLength: 1
      required:
      - message
    SendMessageResponse:
      type: object
      properties:
        taskId:
          type: string
          format: uuid
          description: The unique identifier of the task
          example: 550e8400-e29b-41d4-a716-446655440000
    SetAgentAccessRequest:
      type: object
      properties:
        projects:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ProjectDetails"
          description: "The list of projects the Agent is allowed to be scoped to.\
            \ Each project should be provided as an object with the Project ID, or\
            \ the list can be left empty."
          example:
            projects:
              "3fa85f64-5717-4562-b3fc-2c963f66afa6":
                environments:
                - dev
                - prod
              "1398aa31-af57-4a6a-9752-27c2e8556c3f": {}
      required:
      - projects
    SetPermissionsRequest:
      type: object
      properties:
        grantedPermissions:
          type: array
          items:
            $ref: "#/components/schemas/AllowedTool"
      required:
      - grantedPermissions
    SetPermissionsResponse:
      type: object
      properties:
        grantedPermissions:
          type: array
          description: The full list of tools now granted permission for this task
          items:
            $ref: "#/components/schemas/AllowedTool"
        taskId:
          type: string
          format: uuid
          description: The unique identifier of the task
          example: 550e8400-e29b-41d4-a716-446655440000
    SharedPipelineDetailsResponse:
      type: object
      properties:
        artifactDetails:
          $ref: "#/components/schemas/SharedPipelineMetadata"
          description: Metadata for the requested shared pipeline version
        sharedPipelines:
          type: array
          description: List of shared pipelines within this shared pipeline version
          items:
            $ref: "#/components/schemas/SharedPipelineResource"
    SharedPipelineMetadata:
      type: object
      properties:
        branch:
          type: string
          description: "The git branch associated with this version, if available"
          example: main
        commitHash:
          type: string
          description: "The git commit hash associated with this version, if available"
          example: a1b2c3d4e5f6
        createdAt:
          type: string
          format: date-time
          description: The date and time this shared pipeline version was created
          example: 2025-01-15T10:30:00Z
        enabled:
          type: boolean
          description: Whether this version of the shared pipeline is enabled
          example: true
        provider:
          type: string
          description: Provider identifier
          example: matillion
        sharedPipelineIdPrefix:
          type: string
          description: The prefix identifier grouping related shared pipelines
          example: my-shared-pipeline
        versionName:
          type: string
          description: The version name of the shared pipeline artifact
          example: 1.0.0
    SharedPipelineResource:
      type: object
      properties:
        description:
          type: string
          description: Description of the shared resource
          example: ETL pipeline for loading data
        sharedPipelineId:
          type: string
          description: The unique identifier for the shared pipeline within its prefix
            group
          example: my-pipeline
        sourcePipeline:
          type: string
          description: The source pipeline path of the shared pipeline within the
            artifact
          example: pipelines/etl-load
    StreamingAbsTarget:
      allOf:
      - $ref: "#/components/schemas/StreamingTarget"
      - type: object
        properties:
          accountKey:
            $ref: "#/components/schemas/StreamingSecretReference"
            description: The ABS account key for the associated ABS account
          accountName:
            type: string
            description: The ABS account name to store the Avro data files
            example: abs-account-name
            minLength: 1
          container:
            type: string
            description: The name of the ABS container to store the Avro data files
            example: streaming-container
            minLength: 1
          decimalMapping:
            type: string
            description: "Determines the way decimal data is written in the Avro data\
              \ files. If you are using the Redshift pre-built pipeline, you MUST\
              \ use LOGICAL"
            enum:
            - LEGACY
            - LOGICAL
          prefix:
            type: string
            description: The name of the prefix to use when storing the Avro data
              files
            example: streaming-prefix
      required:
      - accountKey
      - accountName
      - container
    StreamingAuthentication:
      discriminator:
        propertyName: type
      properties:
        type:
          type: string
      required:
      - type
    StreamingDb2IbmIConnection:
      type: object
      properties:
        host:
          type: string
          description: The host address of the DB2 IBMi database server
          example: 127.0.0.1
          minLength: 1
        jdbcProperties:
          type: object
          additionalProperties:
            type: string
          description: Any JDBC connection properties to be used when connecting to
            the DB2 IBMi database
          example:
            date format: ymd
        password:
          $ref: "#/components/schemas/StreamingSecretReference"
          description: The details of the password for the associated username
        port:
          type: integer
          format: int32
          description: The port number of the DB2 IBMi database
          example: 8471
        username:
          type: string
          description: The username of the account used to connect to the DB2 IBMi
            database
          example: db2_streaming_user
          minLength: 1
      required:
      - host
      - password
      - port
      - username
    StreamingDb2IbmISource:
      allOf:
      - $ref: "#/components/schemas/StreamingSource"
      - type: object
        properties:
          connection:
            $ref: "#/components/schemas/StreamingDb2IbmIConnection"
            description: The connection details for the DB2 IBMi database
          tables:
            type: array
            description: The list of tables to be captured from the DB2 IBMi database
            items:
              $ref: "#/components/schemas/StreamingTable"
            minItems: 1
      required:
      - connection
      - tables
    StreamingKeyPairAuthentication:
      allOf:
      - $ref: "#/components/schemas/StreamingAuthentication"
      - type: object
        properties:
          passphrase:
            $ref: "#/components/schemas/StreamingSecretReference"
            description: The details of the passphrase for key-pair based authentication
          privateKey:
            $ref: "#/components/schemas/StreamingSecretReference"
            description: The details of the private key for key-pair based authentication
      required:
      - privateKey
    StreamingMySqlConnection:
      type: object
      properties:
        host:
          type: string
          description: The host address of the MySQL database server
          example: 127.0.0.1
          minLength: 1
        jdbcProperties:
          type: object
          additionalProperties:
            type: string
          description: Any JDBC connection properties to be used when connecting to
            the MySQL database
          example:
            FailoverMode: extended
        password:
          $ref: "#/components/schemas/StreamingSecretReference"
          description: The details of the password for the associated username
        port:
          type: integer
          format: int32
          description: The port number of the MySQL database
          example: 3306
        username:
          type: string
          description: The username of the account used to connect to the MySQL database
          example: mysql_streaming_user
          minLength: 1
      required:
      - host
      - password
      - port
      - username
    StreamingMySqlSource:
      allOf:
      - $ref: "#/components/schemas/StreamingSource"
      - type: object
        properties:
          connection:
            $ref: "#/components/schemas/StreamingMySqlConnection"
            description: The connection details for the MySQL database
          tables:
            type: array
            description: The list of tables to be captured from the MySQL database
            items:
              $ref: "#/components/schemas/StreamingTable"
            minItems: 1
      required:
      - connection
      - tables
    StreamingOracleConnection:
      type: object
      properties:
        database:
          type: string
          description: The name of the Oracle database
          example: SAAS_SALES
          minLength: 1
        host:
          type: string
          description: The host address of the Oracle database server
          example: 127.0.0.1
          minLength: 1
        jdbcProperties:
          type: object
          additionalProperties:
            type: string
          description: Any JDBC connection properties to be used when connecting to
            the Oracle database
          example:
            defaultRowPrefetch: "15"
        password:
          $ref: "#/components/schemas/StreamingSecretReference"
          description: The details of the password for the associated username
        pdb:
          type: string
          description: The name of the Oracle pluggable database
          example: SAAS_SALES_PDB
        port:
          type: integer
          format: int32
          description: The port number of the Oracle database
          example: 1521
        username:
          type: string
          description: The username of the account used to connect to the Oracle database
          example: oracle_streaming_user
          minLength: 1
      required:
      - database
      - host
      - password
      - port
      - username
    StreamingOracleSource:
      allOf:
      - $ref: "#/components/schemas/StreamingSource"
      - type: object
        properties:
          connection:
            $ref: "#/components/schemas/StreamingOracleConnection"
            description: The connection details for the Oracle database
          tables:
            type: array
            description: The list of tables to be captured from the Oracle database
            items:
              $ref: "#/components/schemas/StreamingTable"
            minItems: 1
      required:
      - connection
      - tables
    StreamingPasswordAuthentication:
      allOf:
      - $ref: "#/components/schemas/StreamingAuthentication"
      - type: object
        properties:
          password:
            $ref: "#/components/schemas/StreamingSecretReference"
            description: The details for password based authentication
      required:
      - password
    StreamingPipelineCommandRequest:
      type: object
      properties:
        command:
          type: string
          description: The command to be sent to the streaming agent
          enum:
          - START
          - STOP
      required:
      - command
    StreamingPipelineDefinition:
      type: object
      properties:
        advancedProperties:
          type: object
          additionalProperties:
            type: string
          description: Any additional properties for the streaming pipeline
          example:
            max.batch.size: 10000
        agentId:
          type: string
          format: uuid
          description: The ID of the agent that will run the streaming pipeline
          example: 12345678-1234-1234-1234-123456789012
        name:
          type: string
          description: The name of the streaming pipeline
          example: A Streaming Pipeline
        projectId:
          type: string
          format: uuid
          description: The ID of the project that contains the streaming pipeline
            definition
          example: 12345678-1234-1234-1234-123456789012
        streamingPipelineId:
          type: string
          format: uuid
          description: The ID of the streaming pipeline definition
          example: 12345678-1234-1234-1234-123456789012
        streamingSource:
          description: The details of the streaming source
          oneOf:
          - $ref: "#/components/schemas/StreamingDb2IbmISource"
          - $ref: "#/components/schemas/StreamingMySqlSource"
          - $ref: "#/components/schemas/StreamingOracleSource"
          - $ref: "#/components/schemas/StreamingPostgresSource"
          - $ref: "#/components/schemas/StreamingSqlServerSource"
        streamingTarget:
          description: The details of the streaming target
          oneOf:
          - $ref: "#/components/schemas/StreamingAbsTarget"
          - $ref: "#/components/schemas/StreamingS3Target"
          - $ref: "#/components/schemas/StreamingSnowflakeTarget"
    StreamingPipelineDefinitionCreateRequest:
      type: object
      properties:
        advancedProperties:
          type: object
          additionalProperties:
            type: string
          description: Any additional properties for the streaming pipeline
          example:
            max.batch.size: 10000
        agentId:
          type: string
          format: uuid
          description: The ID of the agent that will run the streaming pipeline
          example: 12345678-1234-1234-1234-123456789012
        name:
          type: string
          description: The name of the streaming pipeline
          example: A Streaming Pipeline
          minLength: 1
        streamingSource:
          description: The details of the streaming source
          oneOf:
          - $ref: "#/components/schemas/StreamingDb2IbmISource"
          - $ref: "#/components/schemas/StreamingMySqlSource"
          - $ref: "#/components/schemas/StreamingOracleSource"
          - $ref: "#/components/schemas/StreamingPostgresSource"
          - $ref: "#/components/schemas/StreamingSqlServerSource"
        streamingTarget:
          description: The details of the streaming target
          oneOf:
          - $ref: "#/components/schemas/StreamingAbsTarget"
          - $ref: "#/components/schemas/StreamingS3Target"
          - $ref: "#/components/schemas/StreamingSnowflakeTarget"
      required:
      - agentId
      - name
      - streamingSource
      - streamingTarget
    StreamingPipelineDefinitionUpdateRequest:
      type: object
      properties:
        advancedProperties:
          type: object
          additionalProperties:
            type: string
          description: Any additional properties for the streaming pipeline
          example:
            max.batch.size: 10000
        agentId:
          type: string
          format: uuid
          description: The ID of the agent that will run the streaming pipeline
          example: 12345678-1234-1234-1234-123456789012
        name:
          type: string
          description: The name of the streaming pipeline
          example: An Updated Streaming Pipeline
          minLength: 1
        streamingSource:
          description: The details of the streaming source
          oneOf:
          - $ref: "#/components/schemas/StreamingDb2IbmISource"
          - $ref: "#/components/schemas/StreamingMySqlSource"
          - $ref: "#/components/schemas/StreamingOracleSource"
          - $ref: "#/components/schemas/StreamingPostgresSource"
          - $ref: "#/components/schemas/StreamingSqlServerSource"
        streamingTarget:
          description: The details of the streaming target
          oneOf:
          - $ref: "#/components/schemas/StreamingAbsTarget"
          - $ref: "#/components/schemas/StreamingS3Target"
          - $ref: "#/components/schemas/StreamingSnowflakeTarget"
      required:
      - agentId
      - name
      - streamingSource
      - streamingTarget
    StreamingPipelineStatusResponse:
      type: object
      properties:
        status:
          type: string
          description: The status of the streaming pipeline
          enum:
          - STARTING
          - SNAPSHOTTING
          - STREAMING
          - STOPPING
          - NOT_RUNNING
          - UNKNOWN
    StreamingPostgresConnection:
      type: object
      properties:
        database:
          type: string
          description: The name of the Postgres database
          example: SAAS_SALES
          minLength: 1
        host:
          type: string
          description: The host address of the Postgres database server
          example: 127.0.0.1
          minLength: 1
        jdbcProperties:
          type: object
          additionalProperties:
            type: string
          description: Any JDBC connection properties to be used when connecting to
            the Postgres database
          example:
            ssl: "true"
        password:
          $ref: "#/components/schemas/StreamingSecretReference"
          description: The details of the password for the associated username
        port:
          type: integer
          format: int32
          description: The port number of the Postgres database
          example: 5432
        username:
          type: string
          description: The username of the account used to connect to the Postgres
            database
          example: postgres_streaming_user
          minLength: 1
      required:
      - database
      - host
      - password
      - port
      - username
    StreamingPostgresSource:
      allOf:
      - $ref: "#/components/schemas/StreamingSource"
      - type: object
        properties:
          connection:
            $ref: "#/components/schemas/StreamingPostgresConnection"
            description: The connection details for the Postgres database
          tables:
            type: array
            description: The list of tables to be captured from the Postgres database
            items:
              $ref: "#/components/schemas/StreamingTable"
            minItems: 1
      required:
      - connection
      - tables
    StreamingS3Target:
      allOf:
      - $ref: "#/components/schemas/StreamingTarget"
      - type: object
        properties:
          bucket:
            type: string
            description: The name of the S3 bucket to store the Avro data files
            example: streaming-bucket
            minLength: 1
          decimalMapping:
            type: string
            description: "Determines the way decimal data is written in the Avro data\
              \ files. If you are using the Redshift pre-built pipeline, you MUST\
              \ use LOGICAL"
            enum:
            - LEGACY
            - LOGICAL
          prefix:
            type: string
            description: The name of the prefix to use when storing the Avro data
              files
            example: streaming-prefix
      required:
      - bucket
    StreamingSecretReference:
      type: object
      properties:
        secretKey:
          type: string
          description: The key of the secret
          example: the-secret-key
        secretLocation:
          type: string
          description: The location of the secret
          example: the-secret-location
        secretName:
          type: string
          description: The name of the secret
          example: the-secret-name
          minLength: 1
        secretType:
          type: string
          description: The cloud service that hosts the secret
          enum:
          - AWS_SECRETS_MANAGER
          - AZURE_KEY_VAULT
          - GOOGLE_SECRET_MANAGER
      required:
      - secretName
      - secretType
    StreamingSnowflakeConnection:
      type: object
      properties:
        accountName:
          type: string
          description: The account name for the Snowflake connection
          example: snowflake-account-name
          minLength: 1
        authentication:
          description: The authentication details for the Snowflake connection
          oneOf:
          - $ref: "#/components/schemas/StreamingKeyPairAuthentication"
          - $ref: "#/components/schemas/StreamingPasswordAuthentication"
        jdbcProperties:
          type: object
          additionalProperties:
            type: string
          description: Any JDBC connection properties to be used when connecting to
            the Snowflake database
          example:
            loginTimeout: "120"
        username:
          type: string
          description: The username for the Snowflake connection
          example: snowflake-username
          minLength: 1
      required:
      - accountName
      - authentication
      - username
    StreamingSnowflakeTarget:
      allOf:
      - $ref: "#/components/schemas/StreamingTarget"
      - type: object
        properties:
          connection:
            $ref: "#/components/schemas/StreamingSnowflakeConnection"
            description: The details of the Snowflake connection to use
          database:
            type: string
            description: The database to use when connecting to the Snowflake instance
            example: streaming-database
            minLength: 1
          role:
            type: string
            description: The role to use when connecting to the Snowflake database
            example: streaming-role
            minLength: 1
          stageName:
            type: string
            description: The name of the stage to use to store the Avro data files
              in the Snowflake database
            example: streaming-stage-schema
            minLength: 1
          stagePrefix:
            type: string
            description: The prefix of the stage to use to store the Avro data files
              in the Snowflake database
            example: streaming-stage-schema
          stageSchema:
            type: string
            description: The schema that contains the stage to use to store the Avro
              data files in the Snowflake database
            example: streaming-stage-schema
            minLength: 1
          tablePrefixType:
            type: string
            description: Determines the naming convention of the tables created in
              the target database
            enum:
            - SOURCE_DATABASE_AND_SCHEMA
            - PREFIX
            - NONE
          tableSchema:
            type: string
            description: The schema in which to create the tables that will store
              the streamed data in the Snowflake database
            example: streaming-stage-schema
            minLength: 1
          temporalMapping:
            type: string
            description: Determines the way that datetime data is written into the
              target database
            enum:
            - NATIVE
            - EPOCH
          transformationType:
            type: string
            description: Determines the way the data is transformed into the target
              database
            enum:
            - COPY_TABLE
            - COPY_TABLE_SOFT_DELETE
            - CHANGE_LOG
          warehouse:
            type: string
            description: The warehouse to use when connecting to the Snowflake database
            example: streaming-warehouse
            minLength: 1
      required:
      - connection
      - database
      - role
      - stageName
      - stageSchema
      - tablePrefixType
      - tableSchema
      - transformationType
      - warehouse
    StreamingSource:
      type: object
      discriminator:
        propertyName: type
      properties:
        type:
          type: string
          description: The type of source for the streaming pipeline
          enum:
          - db2ibmi
          - mysql
          - oracle
          - postgres
          - sqlserver
    StreamingSqlServerConnection:
      type: object
      properties:
        database:
          type: string
          description: The name of the SQL Server database
          example: SAAS_SALES
          minLength: 1
        host:
          type: string
          description: The host address of the SQL Server database server
          example: 127.0.0.1
          minLength: 1
        jdbcProperties:
          type: object
          additionalProperties:
            type: string
          description: Any JDBC connection properties to be used when connecting to
            the SQL Server database
          example:
            queryTimeout: "60"
        password:
          $ref: "#/components/schemas/StreamingSecretReference"
          description: The details of the password for the associated username
        port:
          type: integer
          format: int32
          description: The port number of the SQL Server database
          example: 1433
        username:
          type: string
          description: The username of the account used to connect to the SQL Server
            database
          example: sqlserver_streaming_user
          minLength: 1
      required:
      - database
      - host
      - password
      - port
      - username
    StreamingSqlServerSource:
      allOf:
      - $ref: "#/components/schemas/StreamingSource"
      - type: object
        properties:
          connection:
            $ref: "#/components/schemas/StreamingSqlServerConnection"
            description: The connection details for the SQL Server database
          tables:
            type: array
            description: The list of tables to be captured from the SQL Server database
            items:
              $ref: "#/components/schemas/StreamingTable"
            minItems: 1
      required:
      - connection
      - tables
    StreamingTable:
      type: object
      properties:
        schema:
          type: string
          description: The name of the database schema
          example: SCHEMA_A
          minLength: 1
        table:
          type: string
          description: The name of the database table
          example: TABLE_A
          minLength: 1
      required:
      - schema
      - table
    StreamingTarget:
      type: object
      discriminator:
        propertyName: type
      properties:
        type:
          type: string
          description: The type of target for the streaming pipeline
          enum:
          - abs
          - s3
          - snowflake
    TaskDecision:
      discriminator:
        propertyName: type
      properties:
        type:
          type: string
      required:
      - type
    TaskDecisionsRequest:
      type: object
      properties:
        decisions:
          type: array
          items:
            oneOf:
            - $ref: "#/components/schemas/QuestionAnswerDecision"
            - $ref: "#/components/schemas/ToolApprovalDecision"
          minItems: 1
      required:
      - decisions
    TaskEvent:
      type: object
      properties:
        data:
          $ref: "#/components/schemas/JsonNode"
          description: The event payload as returned by the upstream copilot service.
            Structure varies by event type.
        groupId:
          type: string
          description: Optional identifier for grouped events returned by the upstream
            copilot service
        timestamp:
          type: string
          format: date-time
    TaskSummary:
      type: object
      properties:
        agentName:
          type: string
          description: The name of the agent handling the task
          example: data_engineer_agent
        branchId:
          type: string
          description: The branch the task is associated with
          example: main
        createdAt:
          type: string
          format: date-time
          description: The date and time the task was created
          example: 2024-01-15T10:30:00Z
        description:
          type: string
          description: A short description of what the agent was asked to do
          example: Build a pipeline to load sales data from S3 into Snowflake
        mode:
          type: string
          description: The execution mode the task is running in
          enum:
          - PLAN
          - ACT
          example: ACT
        modifiedAt:
          type: string
          format: date-time
          description: The date and time the task was last modified
          example: 2024-01-15T10:35:00Z
        projectId:
          type: string
          description: The ID of the project the task is associated with
          example: 550e8400-e29b-41d4-a716-446655440001
        status:
          type: string
          description: The current status of the task
          enum:
          - RUNNING
          - STOPPED
          - STOPPING
          - ERRORED
          example: RUNNING
        taskId:
          type: string
          format: uuid
          description: The unique identifier of the task
          example: 550e8400-e29b-41d4-a716-446655440000
    TestExecution:
      type: object
      properties:
        environmentName:
          type: string
          description: Name of the environment the test execution ran in
          example: Dev
        finishedAt:
          type: string
          format: date-time
          description: The time the test execution finished
        message:
          type: string
          description: Human-readable message describing the test execution outcome
          example: "\"Rewrite Table\": Success"
        projectId:
          type: string
          description: Identifier of the project the test execution belongs to
          example: 4a8a6162-702b-4efc-b2ec-c986e0bc95e4
        scheduleId:
          type: string
          description: "Identifier of the schedule that triggered the test execution,\
            \ if applicable"
          example: 9e2a6b04-ddd7-4bb4-b7dc-56e3b6f3ed43
        startedAt:
          type: string
          format: date-time
          description: The time the test execution started
        status:
          type: string
          description: Current status of the test execution
          example: RUNNING
        testExecutionId:
          type: string
          description: Unique identifier for the test execution
          example: fd05a6c4-b3e1-4441-86a2-044d5092731d
        testName:
          type: string
          description: Name of the executed test
          example: My Test
        trigger:
          type: string
          description: What triggered the test execution
          enum:
          - DESIGNER
          - API
          - SCHEDULE
          - SCHEDULE_RUN_NOW
          - UNKNOWN
          example: SCHEDULE
        user:
          type: string
          description: "The user who triggered the test execution, if applicable"
          example: A User
    TestExecutionRequest:
      type: object
      properties:
        agentId:
          type: string
          description: "Optional agent ID. If not specified, the default agent for\
            \ the environment will be used"
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        environmentName:
          type: string
          description: The environment to execute tests in
          example: environment1
          maxLength: 255
          minLength: 0
        executionTag:
          type: string
          description: Optional tag to control execution concurrency
          example: nightly
          maxLength: 255
          minLength: 0
        pipelines:
          type: array
          description: Pipelines whose associated tests to execute (required when
            scope=PIPELINE)
          items:
            $ref: "#/components/schemas/PipelineReference"
          maxItems: 500
          minItems: 0
        scope:
          type: string
          description: "Execution scope: TEST, PIPELINE, or PROJECT"
          enum:
          - TEST
          - PIPELINE
          - PROJECT
          example: TEST
        tests:
          type: array
          description: Tests to execute (required when scope=TEST)
          items:
            $ref: "#/components/schemas/TestReference"
          maxItems: 500
          minItems: 0
        versionName:
          type: string
          description: Optional artifact version name to execute tests against
          example: v1.2.3
          maxLength: 255
          minLength: 0
      required:
      - environmentName
      - scope
    TestExecutionResponse:
      type: object
      properties:
        testExecutionId:
          type: string
          description: Server-generated identifier for the test execution
          example: 1398aa31-af57-4a6a-9752-27c2e8556c3f
    TestExecutionStatusResponse:
      type: object
      properties:
        result:
          $ref: "#/components/schemas/TestExecution"
          description: The test execution status details
    TestReference:
      type: object
      properties:
        name:
          type: string
          description: Name of the test file (must end with .test.yaml)
          example: mytest.test.yaml
          minLength: 1
          pattern: .*\.test\.yaml$
      required:
      - name
    ToolApprovalDecision:
      allOf:
      - $ref: "#/components/schemas/TaskDecision"
      - type: object
        properties:
          approved:
            type: boolean
            description: Whether to approve the tool invocation
            example: true
          id:
            type: string
            format: uuid
            description: The unique identifier of the tool invocation to approve or
              deny
            example: 550e8400-e29b-41d4-a716-446655440000
          scope:
            type:
            - string
            - "null"
            description: "The scope of the approval — ONCE for a single invocation,\
              \ CONVERSATION for the entire task"
            enum:
            - ONCE
            - CONVERSATION
            example: ONCE
      required:
      - approved
      - id
    UnencryptedSecretRequest:
      type: object
      properties:
        secret:
          $ref: "#/components/schemas/SecretValueRequest"
          description: Details of the secret to store in the customer vault.
      required:
      - secret
    UpdateAgentAccessRequest:
      type: object
      properties:
        projects:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ProjectDetails"
          description: The list of projects and associated environments to be added
            to the list the Agent is allowed to be scoped to. Each project should
            be provided as an object with the Project ID. The list of projects cannot
            be left empty.
          example:
            projects:
              "3fa85f64-5717-4562-b3fc-2c963f66afa6":
                environments:
                - dev
                - prod
              "1398aa31-af57-4a6a-9752-27c2e8556c3f": {}
      required:
      - projects
    UpdateConnectionRequest:
      type: object
      description: The update request containing the new connection details.
      properties:
        authType:
          type: string
          description: The kind of secret being referenced. See the combinations table
            in the operation description for valid values per connection type.
          enum:
          - GENERIC_SECRET
          - CLOUD_PROVIDER_SECRET
          - OAUTH_USER_TOKENS
          - OAUTH_AUTHORIZATION_CODE
          - OAUTH_CLIENT_CRED
          - COMPOSITE_TOKEN
          - OAUTH_1_0_X_ADS
          example: GENERIC_SECRET
        connectionDetails:
          $ref: "#/components/schemas/ConnectionDetails"
          description: |-
            Provides the definition of the values of the connection which will vary by connection type. Includes:
            - Location of any sensitive values (secret location and name)
            - Any non-sensitive values (url, username)
        platformConnectionType:
          type: string
          description: |-
            The different types of connection that can be created:
            - `COMPONENT_BASIC` — connect a component to a data source, API, or SaaS application using a secret stored in your secrets manager.
            - `CLOUD_PLATFORM_CREDENTIALS` — give a project access to a cloud provider (AWS, Azure, GCP) using cloud credentials stored in your secrets manager.
          enum:
          - COMPONENT_BASIC
          - CLOUD_PLATFORM_CREDENTIALS
          example: COMPONENT_BASIC
      required:
      - authType
      - platformConnectionType
    UpdateProjectVariableRequest:
      type: object
      properties:
        behaviour:
          type: string
          enum:
          - COPIED
          - SHARED
        description:
          type: string
          maxLength: 255
          minLength: 0
        name:
          type: string
          maxLength: 255
          minLength: 1
          pattern: "^(?!\\$$)[a-zA-Z_$][a-zA-Z0-9_$]*$"
        supportsDoubleResolution:
          type: boolean
        type:
          type: string
          enum:
          - NUMBER
          - TEXT
          - DATETIME
        value:
          $ref: "#/components/schemas/JsonNode"
      required:
      - behaviour
      - type
    UpdateSharedPipelineRequest:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether this version of the shared pipeline is enabled
          example: true
        sharedPipelineIdPrefix:
          type: string
          description: The prefix identifier grouping related shared pipelines
          example: my-shared-pipeline
          minLength: 1
        versionName:
          type: string
          description: The version name of the shared pipeline artifact
          example: 1.0.0
          maxLength: 255
          minLength: 1
      required:
      - enabled
      - sharedPipelineIdPrefix
      - versionName
    UpdateSharedPipelineResponse:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether this version of the shared pipeline is enabled
          example: true
        versionName:
          type: string
          description: The version name of the shared pipeline artifact
          example: 1.0.0
    UserGroup:
      type: object
      properties:
        display:
          type: string
        ref:
          type: string
          xml:
            name: $ref
        type:
          type: string
          enum:
          - DIRECT
          - INDIRECT
        value:
          type: string
    VariableInfo:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        type:
          type: string
          enum:
          - NUMBER
          - TEXT
          - DATETIME
    VaultLocation:
      type: object
      discriminator:
        propertyName: type
      properties:
        type:
          type: string
          enum:
          - AWS_SECRET_MANAGER
          - AZURE_SECRET_MANAGER
          - GCP_SECRET_MANAGER
          - MATILLION_CUSTOMER_VAULT
          - DEFAULT_SECRET_VAULT
    VersionDetails:
      type: object
      properties:
        agentUpdateAvailable:
          type: boolean
          description: Whether an update is available for the agent
          example: false
        agentVersion:
          type: string
          description: The reported version of the agent
          example: 1.0.0
        support:
          type: string
          description: Whether the agent is supported or unsupported
          enum:
          - SUPPORTED
          - UNSUPPORTED
          example: SUPPORTED
        trackName:
          type: string
          description: The name of the version track the Agent is on
          example: current
        trackReleaseDate:
          type: string
          description: The date the latest version of the version track was released
          example: 2025-01-01T00:00:00.000+00:00
        trackVersion:
          type: string
          description: The latest version of the version track the agent is on
          example: 1.0.0
    X509Certificate:
      type: object
      properties:
        display:
          type: string
        primary:
          type: boolean
        type:
          type: string
        value:
          type: string
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      description: a valid bearer token
      scheme: bearer
      type: http