Union.ai Executions API

The Executions API from Union.ai — 6 operation(s) for executions.

OpenAPI Specification

unionai-executions-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Union FlyteAdmin Control Plane API (HTTP/JSON Gateway) Domains Executions API
  description: Conservative model of the documented HTTP/JSON gateway exposed by the Union.ai / Flyte control plane (the FlyteIDL AdminService). The control plane is primarily a gRPC service; an HTTP/JSON REST gateway is generated automatically with grpc-gateway, mapping each gRPC method to an HTTP endpoint under /api/v1/. Paths and methods below are taken from the public FlyteIDL admin service google.api.http annotations. Request/response bodies are modeled loosely (object) because the gRPC<->JSON mapping of the full protobuf message tree is large and not maintained as a hand-authored OpenAPI contract by the vendor.
  termsOfService: https://www.union.ai/legal/terms-of-service
  contact:
    name: Union.ai
    url: https://www.union.ai/contact
  license:
    name: Apache 2.0 (Flyte / FlyteIDL)
    url: https://www.apache.org/licenses/LICENSE-2.0
  version: '1.0'
servers:
- url: https://{org}.app.union.ai
  description: Union BYOC / managed control plane (replace {org} with your tenant).
  variables:
    org:
      default: your-org
- url: https://serverless.union.ai
  description: Union Serverless control plane.
security:
- OAuth2:
  - all
- BearerAuth: []
tags:
- name: Executions
paths:
  /api/v1/executions:
    post:
      operationId: createExecution
      tags:
      - Executions
      summary: Launch a workflow execution from a launch plan.
      requestBody:
        $ref: '#/components/requestBodies/Generic'
      responses:
        '200':
          $ref: '#/components/responses/OK'
  /api/v1/executions/relaunch:
    post:
      operationId: relaunchExecution
      tags:
      - Executions
      summary: Relaunch a previously created execution.
      requestBody:
        $ref: '#/components/requestBodies/Generic'
      responses:
        '200':
          $ref: '#/components/responses/OK'
  /api/v1/executions/recover:
    post:
      operationId: recoverExecution
      tags:
      - Executions
      summary: Recover a failed execution from the last known successful point.
      requestBody:
        $ref: '#/components/requestBodies/Generic'
      responses:
        '200':
          $ref: '#/components/responses/OK'
  /api/v1/executions/{project}/{domain}:
    get:
      operationId: listExecutions
      tags:
      - Executions
      summary: List executions in a project/domain.
      parameters:
      - $ref: '#/components/parameters/PathProject'
      - $ref: '#/components/parameters/PathDomain'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Token'
      - $ref: '#/components/parameters/Filters'
      responses:
        '200':
          $ref: '#/components/responses/OK'
  /api/v1/executions/{project}/{domain}/{name}:
    get:
      operationId: getExecution
      tags:
      - Executions
      summary: Get a single workflow execution.
      parameters:
      - $ref: '#/components/parameters/PathProject'
      - $ref: '#/components/parameters/PathDomain'
      - $ref: '#/components/parameters/PathName'
      responses:
        '200':
          $ref: '#/components/responses/OK'
    put:
      operationId: updateExecution
      tags:
      - Executions
      summary: Update execution metadata (e.g. state).
      parameters:
      - $ref: '#/components/parameters/PathProject'
      - $ref: '#/components/parameters/PathDomain'
      - $ref: '#/components/parameters/PathName'
      requestBody:
        $ref: '#/components/requestBodies/Generic'
      responses:
        '200':
          $ref: '#/components/responses/OK'
    delete:
      operationId: terminateExecution
      tags:
      - Executions
      summary: Terminate a running execution.
      parameters:
      - $ref: '#/components/parameters/PathProject'
      - $ref: '#/components/parameters/PathDomain'
      - $ref: '#/components/parameters/PathName'
      responses:
        '200':
          $ref: '#/components/responses/OK'
  /api/v1/data/executions/{project}/{domain}/{name}:
    get:
      operationId: getExecutionData
      tags:
      - Executions
      summary: Get input/output data URLs for an execution.
      parameters:
      - $ref: '#/components/parameters/PathProject'
      - $ref: '#/components/parameters/PathDomain'
      - $ref: '#/components/parameters/PathName'
      responses:
        '200':
          $ref: '#/components/responses/OK'
components:
  parameters:
    Limit:
      name: limit
      in: query
      required: false
      schema:
        type: integer
        format: int32
      description: Maximum number of results to return for this page.
    Token:
      name: token
      in: query
      required: false
      schema:
        type: string
      description: Opaque pagination token returned by the previous page.
    PathName:
      name: name
      in: path
      required: true
      schema:
        type: string
    Filters:
      name: filters
      in: query
      required: false
      schema:
        type: string
      description: FlyteAdmin filter expression (e.g. eq(execution.phase,RUNNING)).
    PathProject:
      name: project
      in: path
      required: true
      schema:
        type: string
    PathDomain:
      name: domain
      in: path
      required: true
      schema:
        type: string
  requestBodies:
    Generic:
      required: true
      content:
        application/json:
          schema:
            type: object
            description: JSON projection of the corresponding FlyteIDL protobuf request message. See the FlyteIDL admin protos for the exact field tree.
  responses:
    OK:
      description: OK
      content:
        application/json:
          schema:
            type: object
            description: JSON projection of the corresponding FlyteIDL protobuf response message.
  securitySchemes:
    OAuth2:
      type: oauth2
      description: FlyteAdmin secures client connections with OAuth2. Interactive CLI/UI clients use the Authorization Code + PKCE flow; machine clients use the Client Credentials flow. User authentication to the console is via OpenID Connect. Tokens are presented as a Bearer access token.
      flows:
        authorizationCode:
          authorizationUrl: https://{org}.app.union.ai/oauth2/authorize
          tokenUrl: https://{org}.app.union.ai/oauth2/token
          scopes:
            all: Full control-plane access.
        clientCredentials:
          tokenUrl: https://{org}.app.union.ai/oauth2/token
          scopes:
            all: Full control-plane access.
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT