Arthur AI Authorization V1 API
The Authorization V1 API from Arthur AI — 9 operation(s) for authorization v1.
The Authorization V1 API from Arthur AI — 9 operation(s) for authorization v1.
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