Gremlin roles API

List and modify roles

OpenAPI Specification

gremlin-roles-api-openapi.yml Raw ↑
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