Amigo External Role Assignments API
The External Role Assignments API from Amigo — 2 operation(s) for external role assignments.
The External Role Assignments API from Amigo — 2 operation(s) for external role assignments.
openapi: 3.1.0
info:
title: Amigo Account External Role Assignments API
version: 0.1.0
servers:
- url: https://api.amigo.ai
- url: https://internal-api.amigo.ai
- url: https://api-eu-central-1.amigo.ai
- url: https://api-ap-southeast-2.amigo.ai
- url: https://api-ca-central-1.amigo.ai
security:
- Bearer-Authorization: []
Bearer-Authorization-Organization: []
Basic: []
tags:
- name: External Role Assignments
paths:
/v1/{workspace_id}/external-role-assignments:
get:
tags:
- External Role Assignments
summary: List External Role Assignments
operationId: list-external-role-assignments
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: sort_by
in: query
required: false
schema:
type: array
items:
type: string
default: []
title: Sort By
- name: limit
in: query
required: false
schema:
type: integer
maximum: 200
exclusiveMinimum: 0
default: 50
title: Limit
- name: continuation_token
in: query
required: false
schema:
title: Continuation Token
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/src__routes__external_role_assignments__ListResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
put:
tags:
- External Role Assignments
summary: Upsert External Role Assignment
operationId: upsert-external-role-assignment
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpsertRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ExternalRoleAssignmentItem'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
/v1/{workspace_id}/external-role-assignments/{assignment_id}:
get:
tags:
- External Role Assignments
summary: Get External Role Assignment
operationId: get-external-role-assignment
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: assignment_id
in: path
required: true
schema:
type: string
format: uuid
title: Assignment Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ExternalRoleAssignmentItem'
'404':
description: Assignment not found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- External Role Assignments
summary: Delete External Role Assignment
operationId: delete-external-role-assignment
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: assignment_id
in: path
required: true
schema:
type: string
format: uuid
title: Assignment Id
responses:
'204':
description: Successful Response
'404':
description: Assignment not found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
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
ExternalRoleAssignmentItem:
properties:
id:
type: string
format: uuid
title: Id
source:
type: string
title: Source
external_subject_key:
type: string
title: External Subject Key
external_subject_id:
anyOf:
- type: string
- type: 'null'
title: External Subject Id
entity_id:
type: string
format: uuid
title: Entity Id
display_name:
anyOf:
- type: string
- type: 'null'
title: Display Name
roles:
items:
type: string
type: array
title: Roles
roles_verified:
type: boolean
title: Roles Verified
status:
type: string
enum:
- active
- suspended
- revoked
title: Status
provisioned_via:
type: string
enum:
- roster_sync
- jit
title: Provisioned Via
last_verified_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Last Verified At
created_at:
type: string
format: date-time
title: Created At
updated_at:
type: string
format: date-time
title: Updated At
type: object
required:
- id
- source
- external_subject_key
- entity_id
- roles
- roles_verified
- status
- provisioned_via
- created_at
- updated_at
title: ExternalRoleAssignmentItem
src__routes__external_role_assignments__ListResponse:
properties:
items:
items:
$ref: '#/components/schemas/ExternalRoleAssignmentItem'
type: array
title: Items
has_more:
type: boolean
title: Has More
continuation_token:
title: Continuation Token
type: object
required:
- items
- has_more
title: ListResponse
UpsertRequest:
properties:
source:
type: string
maxLength: 128
minLength: 1
title: Source
external_subject_key:
type: string
maxLength: 512
minLength: 1
title: External Subject Key
external_subject_id:
anyOf:
- type: string
maxLength: 512
- type: 'null'
title: External Subject Id
entity_id:
type: string
format: uuid
title: Entity Id
display_name:
anyOf:
- type: string
maxLength: 512
- type: 'null'
title: Display Name
roles:
items:
type: string
maxLength: 64
minLength: 1
pattern: ^[a-z][a-z0-9_]{0,63}$
type: array
maxItems: 64
title: Roles
roles_verified:
type: boolean
title: Roles Verified
default: false
provisioned_via:
type: string
enum:
- roster_sync
- jit
title: Provisioned Via
additionalProperties: false
type: object
required:
- source
- external_subject_key
- entity_id
- provisioned_via
title: UpsertRequest
securitySchemes:
Bearer-Authorization:
type: http
scheme: bearer
bearerFormat: JWT
description: Amigo issued JWT token that identifies an user. It's issued either after logging in through the frontend, or manually through the [`SignInWithAPIKey`](sign-in-with-api-key) endpoint.
Bearer-Authorization-Organization:
type: apiKey
in: header
name: X-ORG-ID
description: An optional organization identifier that indicates from which organization the token is issued. This is used in rare cases where the user to authenticate is making a request for resources in another organization.
Basic:
type: http
scheme: basic
description: The username should be set to {org_id}_{user_id}, and the password should be the Amigo issued JWT token that identifies the user.