openapi: 3.0.1 info: title: Union FlyteAdmin Control Plane API (HTTP/JSON Gateway) Domains Projects 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: Projects paths: /api/v1/projects: get: operationId: listProjects tags: - Projects summary: List registered projects. parameters: - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Token' - $ref: '#/components/parameters/Filters' - $ref: '#/components/parameters/SortBy' responses: '200': $ref: '#/components/responses/OK' post: operationId: registerProject tags: - Projects summary: Register a new project. requestBody: $ref: '#/components/requestBodies/Generic' responses: '200': $ref: '#/components/responses/OK' /api/v1/projects/{id}: get: operationId: getProject tags: - Projects summary: Get a single project by id. parameters: - name: id in: path required: true schema: type: string responses: '200': $ref: '#/components/responses/OK' put: operationId: updateProject tags: - Projects summary: Update an existing project. parameters: - name: id in: path required: true schema: type: string requestBody: $ref: '#/components/requestBodies/Generic' responses: '200': $ref: '#/components/responses/OK' components: parameters: SortBy: name: sort_by.key in: query required: false schema: type: string description: Field key to sort the result set by. Limit: name: limit in: query required: false schema: type: integer format: int32 description: Maximum number of results to return for this page. Filters: name: filters in: query required: false schema: type: string description: FlyteAdmin filter expression (e.g. eq(execution.phase,RUNNING)). Token: name: token in: query required: false schema: type: string description: Opaque pagination token returned by the previous page. 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