OpenAPI Specification
openapi: 3.0.1
info:
title: Gremlin agents roles API
description: The API for interacting with the Gremlin Failure-as-a-Service platform
termsOfService: https://www.gremlin.com/terms_of_service_2017_03_24
contact:
name: Gremlin Support
email: support@gremlin.com
license:
name: Gremlin License
url: https://www.gremlin.com/license_2017_03_24
version: '1.0'
servers:
- url: https://api.gremlin.com/v1
description: Gremlin API v1
tags:
- name: roles
description: List and modify roles
paths:
/roles:
get:
tags:
- roles
summary: Returns all roles and privileges
description: This operation will return all possible roles at both the team and company levels, along with their associated privileges.
operationId: getRolesAndPrivileges
parameters: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RolesResponse'
'403':
description: Response was sent via HTTP, please retry using HTTPS
post:
tags:
- roles
summary: Create a new custom role
description: 'This operation will create a new custom role.
Requires the privilege [`ROLES_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)'
operationId: createCustomRole
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCustomRoleRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/RoleResponse'
'400':
description: Bad arguments
content:
application/json:
schema:
type: string
'403':
description: 'User requires privilege: ROLES_WRITE'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- ROLES_WRITE
/roles/{roleId}:
get:
tags:
- roles
summary: Get a custom role
description: This operation will return a custom role.
operationId: getRole
parameters:
- name: roleId
in: path
description: identifier of the role
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RoleResponse'
'400':
description: Bad arguments
content:
application/json:
schema:
type: string
'403':
description: Response was sent via HTTP, please retry using HTTPS
delete:
tags:
- roles
summary: Delete a custom role
description: 'This operation will delete a custom role.
Requires the privilege [`ROLES_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)'
operationId: deleteCustomRole
parameters:
- name: roleId
in: path
description: identifier of the role
required: true
schema:
type: string
responses:
'400':
description: Bad arguments
content:
application/json:
schema:
type: string
'403':
description: 'User requires privilege: ROLES_WRITE'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- ROLES_WRITE
patch:
tags:
- roles
summary: Update a custom role
description: 'This operation will update a custom role.
Requires the privilege [`ROLES_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)'
operationId: updateCustomRole
parameters:
- name: roleId
in: path
description: identifier of the role
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateCustomRoleRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RoleResponse'
'400':
description: Bad arguments
content:
application/json:
schema:
type: string
'403':
description: 'User requires privilege: ROLES_WRITE'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- ROLES_WRITE
components:
schemas:
CreateCustomRoleRequest:
required:
- name
- type
type: object
properties:
name:
type: string
description:
type: string
type:
type: string
enum:
- Company
- Team
privileges:
uniqueItems: true
type: array
items:
type: string
enum:
- ADMIN
- DEV
- ALL_API_KEYS_READ
- API_KEYS_READ
- API_KEYS_WRITE
- COMPANIES_READ
- COMPANIES_WRITE
- COMPANY_INTEGRATIONS_READ
- COMPANY_INTEGRATIONS_WRITE
- COMPANY_PREFERENCES_WRITE
- COMPANY_SECURITY_WRITE
- COMPANY_SECURITY_READ
- COMPANY_SAMLCLAIM_ALIAS_READ
- COMPANY_SAMLCLAIM_ALIAS_WRITE
- COMPANY_USERS_READ
- COMPANY_USERS_WRITE
- HALT_ALL
- LARGE_SCALE_TESTS_READ
- LARGE_SCALE_TESTS_WRITE
- DISASTER_RECOVERY_TESTS_READ
- DISASTER_RECOVERY_TESTS_WRITE
- MINIMUM_COMPANY_PRIVILEGES
- PROMOTE_DEMOTE_OWNER
- RELIABILITY_REPORTS_READ
- REPORTS_READ
- ROLES_WRITE
- SECURITY_REPORTS_READ
- TEAMS_READ
- TEST_SUITES_READ
- TEST_SUITES_WRITE
- CLIENTS_READ
- CLIENTS_WRITE
- EXPERIMENTS_READ
- EXPERIMENTS_RUN
- EXPERIMENTS_WRITE
- FAULT_CPU
- FAULT_IO
- FAULT_MEMORY
- FAULT_DISK
- FAULT_BLACKHOLE
- FAULT_DNS
- FAULT_LATENCY
- FAULT_PACKET_LOSS
- FAULT_COLLECT_CERTS
- FAULT_SHUTDOWN
- FAULT_TIME_TRAVEL
- FAULT_PROCESS_KILLER
- FAULT_PROCESS_EXHAUSTION
- FAULT_GPU
- HALT_WRITE
- IMAGES_READ
- IMAGES_WRITE
- INTEGRATIONS_READ
- INTEGRATIONS_WRITE
- MINIMUM_TEAM_PRIVILEGES
- SCENARIO_SHARE_WRITE
- SCENARIOS_READ
- SCENARIOS_RUN
- SCENARIOS_WRITE
- SERVICES_READ
- SERVICES_RUN
- SERVICES_WRITE
- TEAM_SECURITY_READ
- TEAM_SECURITY_WRITE
- TEAMS_WRITE
- USERS_READ
- USERS_WRITE
- WEBHOOKS_READ
- WEBHOOKS_WRITE
RoleResponse:
type: object
properties:
key:
type: string
name:
type: string
description:
type: string
type:
type: string
enum:
- Company
- Team
privileges:
uniqueItems: true
type: array
items:
type: string
enum:
- ADMIN
- DEV
- ALL_API_KEYS_READ
- API_KEYS_READ
- API_KEYS_WRITE
- COMPANIES_READ
- COMPANIES_WRITE
- COMPANY_INTEGRATIONS_READ
- COMPANY_INTEGRATIONS_WRITE
- COMPANY_PREFERENCES_WRITE
- COMPANY_SECURITY_WRITE
- COMPANY_SECURITY_READ
- COMPANY_SAMLCLAIM_ALIAS_READ
- COMPANY_SAMLCLAIM_ALIAS_WRITE
- COMPANY_USERS_READ
- COMPANY_USERS_WRITE
- HALT_ALL
- LARGE_SCALE_TESTS_READ
- LARGE_SCALE_TESTS_WRITE
- DISASTER_RECOVERY_TESTS_READ
- DISASTER_RECOVERY_TESTS_WRITE
- MINIMUM_COMPANY_PRIVILEGES
- PROMOTE_DEMOTE_OWNER
- RELIABILITY_REPORTS_READ
- REPORTS_READ
- ROLES_WRITE
- SECURITY_REPORTS_READ
- TEAMS_READ
- TEST_SUITES_READ
- TEST_SUITES_WRITE
- CLIENTS_READ
- CLIENTS_WRITE
- EXPERIMENTS_READ
- EXPERIMENTS_RUN
- EXPERIMENTS_WRITE
- FAULT_CPU
- FAULT_IO
- FAULT_MEMORY
- FAULT_DISK
- FAULT_BLACKHOLE
- FAULT_DNS
- FAULT_LATENCY
- FAULT_PACKET_LOSS
- FAULT_COLLECT_CERTS
- FAULT_SHUTDOWN
- FAULT_TIME_TRAVEL
- FAULT_PROCESS_KILLER
- FAULT_PROCESS_EXHAUSTION
- FAULT_GPU
- HALT_WRITE
- IMAGES_READ
- IMAGES_WRITE
- INTEGRATIONS_READ
- INTEGRATIONS_WRITE
- MINIMUM_TEAM_PRIVILEGES
- SCENARIO_SHARE_WRITE
- SCENARIOS_READ
- SCENARIOS_RUN
- SCENARIOS_WRITE
- SERVICES_READ
- SERVICES_RUN
- SERVICES_WRITE
- TEAM_SECURITY_READ
- TEAM_SECURITY_WRITE
- TEAMS_WRITE
- USERS_READ
- USERS_WRITE
- WEBHOOKS_READ
- WEBHOOKS_WRITE
Roles:
type: object
properties:
company:
type: object
additionalProperties:
$ref: '#/components/schemas/RoleResponse'
team:
type: object
additionalProperties:
$ref: '#/components/schemas/RoleResponse'
PrivilegeDefinition:
type: object
properties:
key:
type: string
description:
type: string
category:
type: string
enum:
- NONE
- REQUIRED
- ADMINISTRATIVE
- ALL_API_KEYS
- API_KEYS
- CLIENTS
- COMPANIES
- COMPANY_PREFERENCES
- COMPANY_SECURITY
- COMPANY_USERS
- EXPERIMENTS
- FAULT
- HALT
- HALT_ALL
- IMAGES
- INTEGRATIONS
- DISASTER_RECOVERY_TESTS
- RELIABILITY_REPORTS
- REPORTS
- ROLES
- SCENARIOS
- SCENARIO_SHARE
- SECURITY_REPORTS
- SERVICES
- TEAMS
- TEAM_SECURITY
- TEST_SUITES
- USERS
- WEBHOOKS
RolesResponse:
type: object
properties:
customRoles:
$ref: '#/components/schemas/Roles'
roles:
$ref: '#/components/schemas/Roles'
privileges:
$ref: '#/components/schemas/Privileges'
Privileges:
type: object
properties:
company:
type: object
additionalProperties:
$ref: '#/components/schemas/PrivilegeDefinition'
team:
type: object
additionalProperties:
$ref: '#/components/schemas/PrivilegeDefinition'
UpdateCustomRoleRequest:
type: object
properties:
name:
type: string
description:
type: string
privileges:
uniqueItems: true
type: array
items:
type: string
enum:
- ADMIN
- DEV
- ALL_API_KEYS_READ
- API_KEYS_READ
- API_KEYS_WRITE
- COMPANIES_READ
- COMPANIES_WRITE
- COMPANY_INTEGRATIONS_READ
- COMPANY_INTEGRATIONS_WRITE
- COMPANY_PREFERENCES_WRITE
- COMPANY_SECURITY_WRITE
- COMPANY_SECURITY_READ
- COMPANY_SAMLCLAIM_ALIAS_READ
- COMPANY_SAMLCLAIM_ALIAS_WRITE
- COMPANY_USERS_READ
- COMPANY_USERS_WRITE
- HALT_ALL
- LARGE_SCALE_TESTS_READ
- LARGE_SCALE_TESTS_WRITE
- DISASTER_RECOVERY_TESTS_READ
- DISASTER_RECOVERY_TESTS_WRITE
- MINIMUM_COMPANY_PRIVILEGES
- PROMOTE_DEMOTE_OWNER
- RELIABILITY_REPORTS_READ
- REPORTS_READ
- ROLES_WRITE
- SECURITY_REPORTS_READ
- TEAMS_READ
- TEST_SUITES_READ
- TEST_SUITES_WRITE
- CLIENTS_READ
- CLIENTS_WRITE
- EXPERIMENTS_READ
- EXPERIMENTS_RUN
- EXPERIMENTS_WRITE
- FAULT_CPU
- FAULT_IO
- FAULT_MEMORY
- FAULT_DISK
- FAULT_BLACKHOLE
- FAULT_DNS
- FAULT_LATENCY
- FAULT_PACKET_LOSS
- FAULT_COLLECT_CERTS
- FAULT_SHUTDOWN
- FAULT_TIME_TRAVEL
- FAULT_PROCESS_KILLER
- FAULT_PROCESS_EXHAUSTION
- FAULT_GPU
- HALT_WRITE
- IMAGES_READ
- IMAGES_WRITE
- INTEGRATIONS_READ
- INTEGRATIONS_WRITE
- MINIMUM_TEAM_PRIVILEGES
- SCENARIO_SHARE_WRITE
- SCENARIOS_READ
- SCENARIOS_RUN
- SCENARIOS_WRITE
- SERVICES_READ
- SERVICES_RUN
- SERVICES_WRITE
- TEAM_SECURITY_READ
- TEAM_SECURITY_WRITE
- TEAMS_WRITE
- USERS_READ
- USERS_WRITE
- WEBHOOKS_READ
- WEBHOOKS_WRITE