Arthur AI Authorization V1 API

The Authorization V1 API from Arthur AI — 9 operation(s) for authorization v1.

OpenAPI Specification

arthur-ai-authorization-v1-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Arthur Scope Agents V1 Authorization V1 API
  version: 0.1.0
tags:
- name: Authorization V1
paths:
  /api/v1/workspaces/{workspace_id}/role_bindings:
    post:
      tags:
      - Authorization V1
      summary: Post Workspace Role Binding.
      description: Creates new workspace role binding. Requires workspace_create_role_binding permission.
      operationId: post_workspace_role_binding
      security:
      - OAuth2AuthorizationCode:
        - workspace_create_role_binding
      parameters:
      - name: workspace_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Workspace Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRoleBinding'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleBinding'
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: Internal Server Error
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    get:
      tags:
      - Authorization V1
      summary: List Workspace Role Bindings.
      description: Fetches all workspace role bindings. Requires workspace_list_role_bindings permission.
      operationId: list_workspace_role_bindings
      security:
      - OAuth2AuthorizationCode:
        - workspace_list_role_bindings
      parameters:
      - name: workspace_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Workspace Id
      - name: search
        in: query
        required: false
        schema:
          type: string
          description: Search for role bindings by user name, group name, role name, user ID or group ID.
          title: Search
        description: Search for role bindings by user name, group name, role name, user ID or group ID.
      - name: bound_member_kind
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/BoundMemberKind'
          description: Filter the list of role bindings by the kind of the bound member. Optional.
        description: Filter the list of role bindings by the kind of the bound member. Optional.
      - name: user_types
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/UserType'
          description: Limits the results to a specific set of user types. Only applies to user role bindings.
          default:
          - user
          - service_account
          title: User Types
        description: Limits the results to a specific set of user types. Only applies to user role bindings.
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          description: The page to return starting from 1 up to total_pages.
          default: 1
          title: Page
        description: The page to return starting from 1 up to total_pages.
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000
          minimum: 1
          description: The number of records per page. The max is 1000.
          default: 20
          title: Page Size
        description: The number of records per page. The max is 1000.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList_RoleBinding_'
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: Internal Server Error
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/organization/roles:
    get:
      tags:
      - Authorization V1
      summary: List Roles
      description: Fetches all roles. Requires organization_list_roles permission.
      operationId: list_roles
      security:
      - OAuth2AuthorizationCode:
        - organization_list_roles
      parameters:
      - name: sort
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/RoleSort'
          description: Override the field used for sorting. Optional.
          default: name
        description: Override the field used for sorting. Optional.
      - name: order
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/SortOrder'
          description: Override the sort order of the returned list. Optional.
          default: asc
        description: Override the sort order of the returned list. Optional.
      - name: name
        in: query
        required: false
        schema:
          type: string
          description: Filter the list of roles by name. Optional.
          title: Name
        description: Filter the list of roles by name. Optional.
      - name: organization_bindable
        in: query
        required: false
        schema:
          type: boolean
          description: Filter the list of roles by organization bindable. Optional.
          title: Organization Bindable
        description: Filter the list of roles by organization bindable. Optional.
      - name: workspace_bindable
        in: query
        required: false
        schema:
          type: boolean
          description: Filter the list of roles by workspace bindable. Optional.
          title: Workspace Bindable
        description: Filter the list of roles by workspace bindable. Optional.
      - name: project_bindable
        in: query
        required: false
        schema:
          type: boolean
          description: Filter the list of roles by project bindable. Optional.
          title: Project Bindable
        description: Filter the list of roles by project bindable. Optional.
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          description: The page to return starting from 1 up to total_pages.
          default: 1
          title: Page
        description: The page to return starting from 1 up to total_pages.
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000
          minimum: 1
          description: The number of records per page. The max is 1000.
          default: 20
          title: Page Size
        description: The number of records per page. The max is 1000.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList_Role_'
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: Internal Server Error
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/organization/role_bindings:
    post:
      tags:
      - Authorization V1
      summary: Post Organization Role Binding.
      description: Creates new organization role binding. Requires organization_create_role_binding permission.
      operationId: post_org_role_binding
      security:
      - OAuth2AuthorizationCode:
        - organization_create_role_binding
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRoleBinding'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleBinding'
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: Internal Server Error
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    get:
      tags:
      - Authorization V1
      summary: List Organization Role Bindings.
      description: Fetches all organization role bindings. Requires organization_list_role_bindings permission.
      operationId: list_org_role_bindings
      security:
      - OAuth2AuthorizationCode:
        - organization_list_role_bindings
      parameters:
      - name: search
        in: query
        required: false
        schema:
          type: string
          description: Search for role bindings by user name, group name, role name, user ID or group ID.
          title: Search
        description: Search for role bindings by user name, group name, role name, user ID or group ID.
      - name: bound_member_kind
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/BoundMemberKind'
          description: Filter the list of role bindings by the kind of the bound member. Optional.
        description: Filter the list of role bindings by the kind of the bound member. Optional.
      - name: user_types
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/UserType'
          description: Limits the results to a specific set of user types. Only applies to user role bindings.
          default:
          - user
          - service_account
          title: User Types
        description: Limits the results to a specific set of user types. Only applies to user role bindings.
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          description: The page to return starting from 1 up to total_pages.
          default: 1
          title: Page
        description: The page to return starting from 1 up to total_pages.
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000
          minimum: 1
          description: The number of records per page. The max is 1000.
          default: 20
          title: Page Size
        description: The number of records per page. The max is 1000.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList_RoleBinding_'
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: Internal Server Error
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/projects/{project_id}/role_bindings:
    post:
      tags:
      - Authorization V1
      summary: Post Project Role Binding
      description: Creates new project role binding. Requires project_create_role_binding permission.
      operationId: post_project_role_binding
      security:
      - OAuth2AuthorizationCode:
        - project_create_role_binding
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRoleBinding'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleBinding'
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: Internal Server Error
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    get:
      tags:
      - Authorization V1
      summary: List Project Role Bindings.
      description: Fetches all project role bindings. Requires project_list_role_bindings permission.
      operationId: list_project_role_bindings
      security:
      - OAuth2AuthorizationCode:
        - project_list_role_bindings
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      - name: search
        in: query
        required: false
        schema:
          type: string
          description: Search for role bindings by user name, group name, role name, parent workspace name or ID, user ID or group ID.
          title: Search
        description: Search for role bindings by user name, group name, role name, parent workspace name or ID, user ID or group ID.
      - name: bound_member_kind
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/BoundMemberKind'
          description: Filter the list of role bindings by the kind of the bound member. Optional.
        description: Filter the list of role bindings by the kind of the bound member. Optional.
      - name: user_types
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/UserType'
          description: Limits the results to a specific set of user types. Only applies to user role bindings.
          default:
          - user
          - service_account
          title: User Types
        description: Limits the results to a specific set of user types. Only applies to user role bindings.
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          description: The page to return starting from 1 up to total_pages.
          default: 1
          title: Page
        description: The page to return starting from 1 up to total_pages.
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000
          minimum: 1
          description: The number of records per page. The max is 1000.
          default: 20
          title: Page Size
        description: The number of records per page. The max is 1000.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList_RoleBinding_'
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: Internal Server Error
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/users/{user_id}/role_bindings:
    get:
      tags:
      - Authorization V1
      summary: Get User Role Bindings.
      description: Lists all role bindings for the user. Requires user_list_role_bindings permission.
      operationId: list_user_role_bindings
      security:
      - OAuth2AuthorizationCode:
        - user_list_role_bindings
      parameters:
      - name: user_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: User Id
      - name: search
        in: query
        required: false
        schema:
          type: string
          description: Search for role bindings by workspace name, project name, role name, workspace ID, or project ID.
          title: Search
        description: Search for role bindings by workspace name, project name, role name, workspace ID, or project ID.
      - name: bound_resource_kind
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/BoundResourceKind'
          description: Filter the list of role bindings by the kind of the bound resource. Optional.
        description: Filter the list of role bindings by the kind of the bound resource. Optional.
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          description: The page to return starting from 1 up to total_pages.
          default: 1
          title: Page
        description: The page to return starting from 1 up to total_pages.
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000
          minimum: 1
          description: The number of records per page. The max is 1000.
          default: 20
          title: Page Size
        description: The number of records per page. The max is 1000.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList_RoleBinding_'
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: Internal Server Error
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/groups/{group_id}/role_bindings:
    get:
      tags:
      - Authorization V1
      summary: Get Group Role Bindings.
      description: Lists all role bindings for the group. Requires group_list_role_bindings permission.
      operationId: list_group_role_bindings
      security:
      - OAuth2AuthorizationCode:
        - group_list_role_bindings
      parameters:
      - name: group_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Group Id
      - name: search
        in: query
        required: false
        schema:
          type: string
          description: Search for role bindings by workspace name, project name, role name, workspace ID, or project ID.
          title: Search
        description: Search for role bindings by workspace name, project name, role name, workspace ID, or project ID.
      - name: bound_resource_kind
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/BoundResourceKind'
          description: Filter the list of role bindings by the kind of the bound resource. Optional.
        description: Filter the list of role bindings by the kind of the bound resource. Optional.
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          description: The page to return starting from 1 up to total_pages.
          default: 1
          title: Page
        description: The page to return starting from 1 up to total_pages.
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000
          minimum: 1
          description: The number of records per page. The max is 1000.
          default: 20
          title: Page Size
        description: The number of records per page. The max is 1000.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList_RoleBinding_'
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: Internal Server Error
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/role_bindings/{role_binding_id}:
    delete:
      tags:
      - Authorization V1
      summary: Delete Role Binding.
      description: Deletes role binding by id. Permission required depends on the role binding type. Deleting an organization role binding requires organization_role_binding_delete permission. Deleting a workspace role binding requires workspace_role_binding_delete permission. Deleting a project role binding requires project_role_binding_delete permission.
      operationId: delete_role_binding
      security:
      - OAuth2AuthorizationCode: []
      parameters:
      - name: role_binding_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Role Binding Id
      responses:
        '204':
          description: Successful Response
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: Internal Server Error
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/permissions:
    get:
      tags:
      - Authorization V1
      summary: List Permissions
      description: Returns list of available permissions.
      operationId: list_permissions_library
      security:
      - OAuth2AuthorizationCode: []
      parameters:
      - name: search_string
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: String to search on. Will perform a substring match of name and description.
          title: Search String
        description: String to search on. Will perform a substring match of name and description.
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          description: The page to return starting from 1 up to total_pages.
          default: 1
          title: Page
        description: The page to return starting from 1 up to total_pages.
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000
          minimum: 1
          description: The number of records per page. The max is 1000.
          default: 20
          title: Page Size
        description: The number of records per page. The max is 1000.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList_Permission_'
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: Internal Server Error
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/permissions/check:
    post:
      tags:
      - Authorization V1
      summary: Check Permissions
      description: Check given permissions and returns a list of allowed and not allowed permissions.
      operationId: check_permissions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PermissionsRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionsResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2AuthorizationCode: []
components:
  schemas:
    PermissionRequestItem:
      properties:
        resource_kind:
          $ref: '#/components/schemas/ResourceKind'
          description: Resource kind to check.
        resource_id:
          type: string
          format: uuid
          title: Resource Id
          description: Resource id to check permission for.
        permission_name:
          $ref: '#/components/schemas/PermissionName'
          description: Permission name to check on the given resource.
      type: object
      required:
      - resource_kind
      - resource_id
      - permission_name
      title: PermissionRequestItem
    BoundMemberKind:
      type: string
      enum:
      - user
      - group
      title: BoundMemberKind
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    BoundResourceKind:
      type: string
      enum:
      - organization
      - workspace
      - project
      - data_plane
      title: BoundResourceKind
    Permission:
      properties:
        name:
          $ref: '#/components/schemas/PermissionName'
          description: Name of permission. Must be unique.
        description:
          type: string
          title: Description
          description: Description of the permission.
        resource_kind:
          $ref: '#/components/schemas/ResourceKind'
          description: Kind of the resource the permission references.
      type: object
      required:
      - name
      - description
      - resource_kind
      title: Permission
    PermissionsResponse:
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/PermissionResponseItem'
          type: array
          title: Permissions
      type: object
      required:
      - permissions
      title: PermissionsResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    RoleBinding:
      properties:
        created_at:
          type: string
          format: date-time
          title: Created At
          description: Time of record creation.
        updated_at:
          type: string
          format: date-time
          title: Updated At
          description: Time of last record update.
        id:
          type: string
          format: uuid
          title: Id
          description: ID of the role binding.
        role:
          $ref: '#/components/schemas/BoundRole'
          description: Bound role.
        bound_resource_kind:
          $ref: '#/components/schemas/BoundResourceKind'
          description: Kind of the bound resource.
        bound_resource:
          $ref: '#/components/schemas/BoundResource'
          description: Bound resource.
        bound_member_kind:
          $ref: '#/components/schemas/BoundMemberKind'
          description: Kind of the bound member.
        bound_member:
          $ref: '#/components/schemas/BoundMember'
          description: Bound member.
      type: object
      required:
      - created_at
      - updated_at
      - id
      - role
      - bound_resource_kind
      - bound_resource
      - bound_member_kind
      - bound_member
      title: RoleBinding
    ResourceList_Permission_:
      properties:
        records:
          items:
            $ref: '#/components/schemas/Permission'
          type: array
          title: Records
          description: List of records.
        pagination:
          $ref: '#/components/schemas/Pagination'
          description: Pagination information.
      type: object
      required:
      - records
      - pagination
      title: ResourceList[Permission]
    Role:
      properties:
        created_at:
          type: string
          format: date-time
          title: Created At
          description: Time of record creation.
        updated_at:

# --- truncated at 32 KB (47 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/arthur-ai/refs/heads/main/openapi/arthur-ai-authorization-v1-api-openapi.yml