Airbyte Permissions API

The Permissions API from Airbyte — 2 operation(s) for permissions.

OpenAPI Specification

airbyte-permissions-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: airbyte-api Applications Permissions API
  version: 1.0.0
  description: Programmatically control Airbyte Cloud, OSS & Enterprise.
servers:
- url: https://api.airbyte.com/v1
  description: Airbyte API v1
tags:
- name: Permissions
paths:
  /permissions/{permissionId}:
    parameters:
    - name: permissionId
      schema:
        format: UUID
        type: string
      in: path
      required: true
    get:
      tags:
      - Permissions
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionResponse'
              examples:
                getPermission200Example:
                  summary: Default getPermission 200 response
                  x-microcks-default: true
                  value:
                    permissionId: abc123
                    permissionType: instance_admin
                    userId: abc123
                    workspaceId: abc123
                    organizationId: abc123
          description: Get a Permission by the id in the path.
        '403':
          description: Not allowed
        '404':
          description: Not found
        '422':
          description: Data issue
      operationId: getPermission
      summary: Airbyte Get Permission Details
      x-speakeasy-alias: getPermission
      x-speakeasy-group: Permissions
      x-speakeasy-entity-operation: Permission#read
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      tags:
      - Permissions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PermissionUpdateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionResponse'
              examples:
                updatePermission200Example:
                  summary: Default updatePermission 200 response
                  x-microcks-default: true
                  value:
                    permissionId: abc123
                    permissionType: instance_admin
                    userId: abc123
                    workspaceId: abc123
                    organizationId: abc123
          description: Successful updated
        '400':
          description: Invalid data
        '403':
          description: Not allowed
        '404':
          description: Not found
        '422':
          description: Data issue
      operationId: updatePermission
      summary: Airbyte Update a Permission
      x-speakeasy-alias: updatePermission
      x-speakeasy-group: Permissions
      x-speakeasy-entity-operation: Permission#update
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      tags:
      - Permissions
      responses:
        '204':
          description: The resource was deleted successfully
        '403':
          description: Not allowed
        '404':
          description: Not found
        '422':
          description: Data issue
      operationId: deletePermission
      x-speakeasy-alias: deletePermission
      x-speakeasy-group: Permissions
      summary: Airbyte Delete a Permission
      x-speakeasy-entity-operation: Permission#delete
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /permissions:
    get:
      tags:
      - Permissions
      parameters:
      - name: userId
        description: User Id in permission.
        schema:
          format: UUID
          type: string
        in: query
        required: false
      - name: organizationId
        description: This is required if you want to read someone else's permissions, and you should have organization admin or a higher role.
        schema:
          format: UUID
          type: string
        in: query
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionsResponse'
              examples:
                listPermissions200Example:
                  summary: Default listPermissions 200 response
                  x-microcks-default: true
                  value:
                    data: example
          description: List Permissions.
        '403':
          description: Not allowed
        '404':
          description: Not found
      operationId: listPermissions
      x-speakeasy-alias: listPermissions
      x-speakeasy-group: Permissions
      summary: Airbyte List Permissions by User Id
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      tags:
      - Permissions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PermissionCreateRequest'
            examples:
              Permission Creation Request Example:
                value:
                  permissionType: workspace_admin
                  userId: 7d08fd6c-531e-4a00-937e-3d355f253e63
                  workspaceId: 9924bcd0-99be-453d-ba47-c2c9766f7da5
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionResponse'
              examples:
                Permission Creation Response Example:
                  value:
                    permissionId: 9924bcd0-99be-453d-ba47-c2c9766f7da5
                    permissionType: workspace_admin
                    userId: 7d08fd6c-531e-4a00-937e-3d355f253e63
          description: Successful operation
        '400':
          description: Invalid data
        '403':
          description: Not allowed
      operationId: createPermission
      x-speakeasy-alias: createPermission
      x-speakeasy-group: Permissions
      summary: Airbyte Create a Permission
      x-speakeasy-entity-operation: Permission#create
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    PublicPermissionType:
      type: string
      description: Subset of `PermissionType` (removing `instance_admin`), could be used in public-api.
      enum:
      - organization_admin
      - organization_editor
      - organization_runner
      - organization_reader
      - organization_member
      - workspace_admin
      - workspace_editor
      - workspace_runner
      - workspace_reader
      x-speakeasy-component: true
    PermissionScope:
      description: Scope of a single permission, e.g. workspace, organization
      type: string
      enum:
      - workspace
      - organization
      - none
      x-speakeasy-component: true
    OrganizationId:
      type: string
      format: uuid
      x-speakeasy-component: true
    UserId:
      type: string
      description: Internal Airbyte user ID
      format: uuid
      x-speakeasy-component: true
    PermissionType:
      type: string
      description: Describes what actions/endpoints the permission entitles to
      enum:
      - instance_admin
      - organization_admin
      - organization_editor
      - organization_runner
      - organization_reader
      - organization_member
      - workspace_owner
      - workspace_admin
      - workspace_runner
      - workspace_editor
      - workspace_reader
      x-speakeasy-component: true
    PermissionCreateRequest:
      required:
      - permissionType
      - userId
      type: object
      properties:
        permissionType:
          $ref: '#/components/schemas/PublicPermissionType'
        userId:
          $ref: '#/components/schemas/UserId'
        workspaceId:
          $ref: '#/components/schemas/WorkspaceId'
        organizationId:
          $ref: '#/components/schemas/OrganizationId'
      x-speakeasy-entity: Permission
      x-speakeasy-param-suppress-computed-diff: true
      x-speakeasy-component: true
    WorkspaceId:
      type: string
      format: uuid
      x-speakeasy-component: true
    PermissionResponse:
      title: Root Type for PermissionResponse
      description: Provides details of a single permission.
      type: object
      required:
      - permissionId
      - permissionType
      - userId
      properties:
        permissionId:
          type: string
          format: uuid
        permissionType:
          $ref: '#/components/schemas/PermissionType'
        userId:
          $ref: '#/components/schemas/UserId'
        workspaceId:
          $ref: '#/components/schemas/WorkspaceId'
        organizationId:
          $ref: '#/components/schemas/OrganizationId'
      x-speakeasy-entity: Permission
      x-speakeasy-param-suppress-computed-diff: true
      x-speakeasy-component: true
    PermissionUpdateRequest:
      required:
      - permissionType
      type: object
      properties:
        permissionType:
          $ref: '#/components/schemas/PermissionType'
      x-speakeasy-entity: Permission
      x-speakeasy-param-suppress-computed-diff: true
      x-speakeasy-component: true
    PermissionsResponse:
      title: Root Type for PermissionsResponse
      description: List/Array of multiple permissions
      required:
      - data
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/PermissionResponseRead'
      x-speakeasy-component: true
    PermissionResponseRead:
      title: Root type for PermissionResponseRead
      description: Reformat PermissionResponse with permission scope
      type: object
      required:
      - permissionId
      - permissionType
      - userId
      - scope
      - scopeId
      properties:
        permissionId:
          type: string
          format: uuid
        permissionType:
          $ref: '#/components/schemas/PermissionType'
        userId:
          $ref: '#/components/schemas/UserId'
        scopeId:
          type: string
          format: uuid
        scope:
          $ref: '#/components/schemas/PermissionScope'
      x-speakeasy-entity: Permission
      x-speakeasy-param-suppress-computed-diff: true
      x-speakeasy-component: true