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.