Escape Roles API
Roles Management The public API provides CRUDs operations to manage roles.
Roles Management The public API provides CRUDs operations to manage roles.
openapi: 3.1.0
info:
version: 3.0.0
title: Escape Public Asm Roles API
description: 'This API enables you to operate [Escape](https://escape.tech/) programmatically.
All requests must be authenticated with a valid API key, provided in the `X-ESCAPE-API-KEY` header.
For example: `X-ESCAPE-API-KEY: YOUR_API_KEY`.
You can find your API key in the [Escape dashboard](https://app.escape.tech/user/).'
servers:
- url: https://public.escape.tech/v3
security:
- apiKey: []
tags:
- name: Roles
description: 'Roles Management
The public API provides CRUDs operations to manage roles.'
paths:
/roles:
get:
tags:
- Roles
summary: List roles
operationId: listRoles
description: List and search roles of the organization.
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role
name:
type: string
description: The name of the role
permissions:
type: array
items:
type: string
enum:
- ADMIN
- EDIT_ASSETS
- EDIT_CUSTOM_RULES
- EDIT_INTEGRATIONS
- EDIT_PROFILES
- EDIT_TAGS
- EDIT_WORKFLOWS
- MANAGE_REPORTING
- VIEW_ONLY
description: The permissions of the role
createdAt:
type: string
format: date-time
description: The date and time the role was created
bindings:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role binding
createdAt:
type: string
format: date-time
description: The date and time the role binding was created
roleId:
type: string
format: uuid
description: The id of the role bound by the role binding
projectId:
type:
- string
- 'null'
format: uuid
description: The id of the project bound by the role binding
userId:
type: string
format: uuid
description: The id of the user bound by the role binding
required:
- id
- createdAt
- roleId
- userId
description: The bindings of the role
required:
- id
- name
- permissions
- createdAt
- bindings
post:
tags:
- Roles
summary: Create a role
operationId: createRole
description: Create a role for the organization.
requestBody:
description: Body of the request to create a role
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: The name of the role
example: My super role
permissions:
type: array
items:
type: string
enum:
- ADMIN
- EDIT_ASSETS
- EDIT_CUSTOM_RULES
- EDIT_INTEGRATIONS
- EDIT_PROFILES
- EDIT_TAGS
- EDIT_WORKFLOWS
- MANAGE_REPORTING
- VIEW_ONLY
description: The permissions of the role
example:
- EDIT_ASSETS
bindings:
type: array
items:
type: object
properties:
roleId:
type: string
description: The role ID
example: 00000000-0000-0000-0000-000000000000
userId:
type: string
description: The user ID
example: 00000000-0000-0000-0000-000000000000
required:
- roleId
- userId
description: An optional list of role bindings to create for the role
example:
- roleId: 00000000-0000-0000-0000-000000000000
userId: 00000000-0000-0000-0000-000000000000
required:
- name
- permissions
- bindings
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role
name:
type: string
description: The name of the role
permissions:
type: array
items:
type: string
enum:
- ADMIN
- EDIT_ASSETS
- EDIT_CUSTOM_RULES
- EDIT_INTEGRATIONS
- EDIT_PROFILES
- EDIT_TAGS
- EDIT_WORKFLOWS
- MANAGE_REPORTING
- VIEW_ONLY
description: The permissions of the role
createdAt:
type: string
format: date-time
description: The date and time the role was created
bindings:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role binding
createdAt:
type: string
format: date-time
description: The date and time the role binding was created
role:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role
name:
type: string
description: The name of the role
createdAt:
type: string
format: date-time
description: The date and time the role was created
required:
- id
- name
- createdAt
project:
type: object
properties:
id:
type: string
format: uuid
description: The id of the project
name:
type: string
description: The name of the project
createdAt:
type: string
format: date-time
description: The date and time the project was created
required:
- id
- name
- createdAt
user:
type: object
properties:
id:
type: string
format: uuid
description: The id of the user
email:
type: string
format: email
description: The email of the user
createdAt:
type: string
format: date-time
description: The date and time the user was created
activatedAt:
type:
- string
- 'null'
format: date-time
description: The date and time the user was activated
required:
- id
- email
- createdAt
- activatedAt
required:
- id
- createdAt
- role
- project
- user
description: The bindings of the role
required:
- id
- name
- permissions
- createdAt
- bindings
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
message:
type: string
enum:
- Bad Request
details:
type: string
required:
- message
- details
title: BadRequest
description: Returned when the request payload fails validation
'500':
description: Internal Server Error
content:
application/json:
schema:
type: object
properties:
message:
type: string
enum:
- Internal Server Error
details:
type: string
required:
- message
- details
title: InternalServerError
description: Returned when the server fails to fulfil the request
/roles/bindings:
post:
tags:
- Roles
summary: Create role bindings
operationId: createRoleBindings
description: Create role bindings.
requestBody:
description: Body of the request to create a role binding
required: true
content:
application/json:
schema:
type: object
properties:
bindings:
type: array
items:
type: object
properties:
roleId:
type: string
format: uuid
description: The role ID
example: 00000000-0000-0000-0000-000000000000
projectId:
type:
- string
- 'null'
format: uuid
description: The project ID
example: 00000000-0000-0000-0000-000000000000
userId:
type: string
format: uuid
description: The user ID
example: 00000000-0000-0000-0000-000000000000
required:
- roleId
- userId
description: The role bindings to create
example:
- roleId: 00000000-0000-0000-0000-000000000000
projectId: 00000000-0000-0000-0000-000000000000
userId: 00000000-0000-0000-0000-000000000000
- roleId: 11111111-1111-1111-1111-111111111111
userId: 11111111-1111-1111-1111-111111111111
required:
- bindings
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role binding
userId:
type: string
format: uuid
description: The id of the user
projectId:
type: string
format: uuid
description: The id of the project
roleId:
type: string
format: uuid
description: The id of the role
required:
- id
- userId
- projectId
- roleId
description: The created role bindings
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
message:
type: string
enum:
- Bad Request
details:
type: string
required:
- message
- details
title: BadRequest
description: Returned when the request payload fails validation
'500':
description: Internal Server Error
content:
application/json:
schema:
type: object
properties:
message:
type: string
enum:
- Internal Server Error
details:
type: string
required:
- message
- details
title: InternalServerError
description: Returned when the server fails to fulfil the request
/roles/bindings/{bindingId}:
delete:
tags:
- Roles
summary: Delete a role binding
operationId: deleteRoleBinding
description: Delete a role binding.
parameters:
- schema:
type: string
description: The role binding ID
example: 00000000-0000-0000-0000-000000000000
required: true
description: The role binding ID
name: bindingId
in: path
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
deleted:
type: boolean
required:
- deleted
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
message:
type: string
enum:
- Bad Request
details:
type: string
required:
- message
- details
title: BadRequest
description: Returned when the request payload fails validation
/roles/{roleId}:
get:
tags:
- Roles
summary: Get a role
operationId: getRole
description: Get a role by ID.
parameters:
- schema:
type: string
description: The role ID
example: 00000000-0000-0000-0000-000000000000
required: true
description: The role ID
name: roleId
in: path
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role
name:
type: string
description: The name of the role
permissions:
type: array
items:
type: string
enum:
- ADMIN
- EDIT_ASSETS
- EDIT_CUSTOM_RULES
- EDIT_INTEGRATIONS
- EDIT_PROFILES
- EDIT_TAGS
- EDIT_WORKFLOWS
- MANAGE_REPORTING
- VIEW_ONLY
description: The permissions of the role
createdAt:
type: string
format: date-time
description: The date and time the role was created
bindings:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role binding
createdAt:
type: string
format: date-time
description: The date and time the role binding was created
role:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role
name:
type: string
description: The name of the role
createdAt:
type: string
format: date-time
description: The date and time the role was created
required:
- id
- name
- createdAt
project:
type: object
properties:
id:
type: string
format: uuid
description: The id of the project
name:
type: string
description: The name of the project
createdAt:
type: string
format: date-time
description: The date and time the project was created
required:
- id
- name
- createdAt
user:
type: object
properties:
id:
type: string
format: uuid
description: The id of the user
email:
type: string
format: email
description: The email of the user
createdAt:
type: string
format: date-time
description: The date and time the user was created
activatedAt:
type:
- string
- 'null'
format: date-time
description: The date and time the user was activated
required:
- id
- email
- createdAt
- activatedAt
required:
- id
- createdAt
- role
- project
- user
description: The bindings of the role
required:
- id
- name
- permissions
- createdAt
- bindings
put:
tags:
- Roles
summary: Update a role
operationId: updateRole
description: Update a role.
parameters:
- schema:
type: string
description: The role ID
example: 00000000-0000-0000-0000-000000000000
required: true
description: The role ID
name: roleId
in: path
requestBody:
required: true
description: Body of the request to update a role
content:
application/json:
schema:
type: object
properties:
role:
type: object
properties:
name:
type: string
description: The name of the role
example: My super role
permissions:
type: array
items:
type: string
enum:
- ADMIN
- EDIT_ASSETS
- EDIT_CUSTOM_RULES
- EDIT_INTEGRATIONS
- EDIT_PROFILES
- EDIT_TAGS
- EDIT_WORKFLOWS
- MANAGE_REPORTING
- VIEW_ONLY
description: The permissions of the role
example:
- EDIT_ASSETS
- EDIT_CUSTOM_RULES
required:
- role
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role
name:
type: string
description: The name of the role
permissions:
type: array
items:
type: string
enum:
- ADMIN
- EDIT_ASSETS
- EDIT_CUSTOM_RULES
- EDIT_INTEGRATIONS
- EDIT_PROFILES
- EDIT_TAGS
- EDIT_WORKFLOWS
- MANAGE_REPORTING
- VIEW_ONLY
description: The permissions of the role
createdAt:
type: string
format: date-time
description: The date and time the role was created
bindings:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role binding
createdAt:
type: string
format: date-time
description: The date and time the role binding was created
role:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role
name:
type: string
description: The name of the role
createdAt:
type: string
format: date-time
description: The date and time the role was created
required:
- id
- name
- createdAt
project:
type: object
properties:
id:
type: string
format: uuid
description: The id of the project
name:
type: string
description: The name of the project
createdAt:
type: string
format: date-time
description: The date and time the project was created
required:
- id
- name
- createdAt
user:
type: object
properties:
id:
type: string
format: uuid
description: The id of the user
email:
type: string
format: email
description: The email of the user
createdAt:
type: string
format: date-time
description: The date and time the user was created
activatedAt:
type:
- string
- 'null'
format: date-time
description: The date and time the user was activated
required:
- id
- email
- createdAt
- activatedAt
required:
- id
- createdAt
- role
- project
- user
description: The bindings of the role
required:
- id
- name
- permissions
- createdAt
- bindings
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
message:
type: string
enum:
- Bad Request
details:
type: string
required:
- message
- details
title: BadRequest
description: Returned when the request payload fails validation
'500':
description: Internal Server Error
content:
application/json:
schema:
type: object
properties:
message:
type: string
enum:
- Internal Server Error
details:
type: string
required:
- message
- details
title: InternalServerError
description: Returned when the server fails to fulfil the request
components:
securitySchemes:
apiKey:
type: apiKey
in: header
name: X-ESCAPE-API-KEY