Gremlin external-integrations API

Used for managing authentication for Status Checks and Load Generators

OpenAPI Specification

gremlin-external-integrations-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Gremlin agents external-integrations 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: external-integrations
  description: Used for managing authentication for Status Checks and Load Generators
paths:
  /external-integrations:
    get:
      tags:
      - external-integrations
      summary: Get external integrations by type.
      description: Requires the privilege [`INTEGRATIONS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: get_4
      parameters:
      - name: type
        in: query
        required: true
        schema:
          type: string
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalIntegrationResponse'
        '403':
          description: 'User requires privilege for target team: INTEGRATIONS_READ'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - INTEGRATIONS_READ
    delete:
      tags:
      - external-integrations
      summary: Delete an external integration.
      description: Requires the privilege [`INTEGRATIONS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: revoke
      parameters:
      - name: type
        in: query
        required: true
        schema:
          type: string
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
        '403':
          description: 'User requires privilege for target team: INTEGRATIONS_WRITE'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - INTEGRATIONS_WRITE
  /external-integrations/load-generator:
    get:
      tags:
      - external-integrations
      summary: Get team integrations that are compatible with Load Generators.
      description: Requires the privilege [`INTEGRATIONS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: getLoadGeneratorIntegrations
      parameters:
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamExternalIntegrationsResponse'
        '403':
          description: 'User requires privilege for target team: INTEGRATIONS_READ'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - INTEGRATIONS_READ
    put:
      tags:
      - external-integrations
      summary: Update a team integration that is compatible with Load Generators.
      description: Requires the privilege [`INTEGRATIONS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: updateLoadGeneratorIntegration
      parameters:
      - name: type
        in: query
        required: true
        schema:
          type: string
          enum:
          - JIRA
          - DATADOG
          - DATADOG_EU
          - DATADOG_US3
          - DATADOG_US5
          - DATADOG_US1_FED
          - PAGERDUTY
          - NEWRELIC
          - GRAFANA
          - DYNATRACE
          - APPDYNAMICS
          - PROMETHEUS
          - CUSTOM
          - K6
          - LOAD_GENERATOR_CUSTOM
          - AWS
          - AZURE
      - name: name
        in: query
        required: true
        schema:
          type: string
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTeamExternalIntegrationRequest'
        required: true
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamExternalIntegrationResponse'
        '403':
          description: 'User requires privilege for target team: INTEGRATIONS_WRITE'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - INTEGRATIONS_WRITE
    post:
      tags:
      - external-integrations
      summary: Create new team integration that is compatible with Load Generators.
      description: Requires the privilege [`INTEGRATIONS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: createLoadGeneratorIntegration
      parameters:
      - name: type
        in: query
        required: true
        schema:
          type: string
          enum:
          - JIRA
          - DATADOG
          - DATADOG_EU
          - DATADOG_US3
          - DATADOG_US5
          - DATADOG_US1_FED
          - PAGERDUTY
          - NEWRELIC
          - GRAFANA
          - DYNATRACE
          - APPDYNAMICS
          - PROMETHEUS
          - CUSTOM
          - K6
          - LOAD_GENERATOR_CUSTOM
          - AWS
          - AZURE
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTeamExternalIntegrationRequest'
        required: true
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamExternalIntegrationResponse'
        '403':
          description: 'User requires privilege for target team: INTEGRATIONS_WRITE'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - INTEGRATIONS_WRITE
    delete:
      tags:
      - external-integrations
      summary: Remove a team integration that is compatible with Load Generators.
      description: Requires the privilege [`INTEGRATIONS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: removeLoadGeneratorIntegration
      parameters:
      - name: type
        in: query
        required: true
        schema:
          type: string
          enum:
          - JIRA
          - DATADOG
          - DATADOG_EU
          - DATADOG_US3
          - DATADOG_US5
          - DATADOG_US1_FED
          - PAGERDUTY
          - NEWRELIC
          - GRAFANA
          - DYNATRACE
          - APPDYNAMICS
          - PROMETHEUS
          - CUSTOM
          - K6
          - LOAD_GENERATOR_CUSTOM
          - AWS
          - AZURE
      - name: name
        in: query
        required: true
        schema:
          type: string
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
        '403':
          description: 'User requires privilege for target team: INTEGRATIONS_WRITE'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - INTEGRATIONS_WRITE
  /external-integrations/status-check:
    get:
      tags:
      - external-integrations
      summary: Get team integrations that are compatible with Health Checks.
      description: Requires the privilege [`INTEGRATIONS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: getStatusCheckIntegrations
      parameters:
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamExternalIntegrationsResponse'
        '403':
          description: 'User requires privilege for target team: INTEGRATIONS_READ'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - INTEGRATIONS_READ
    put:
      tags:
      - external-integrations
      summary: Update a team integration that is compatible with Health Checks.
      description: Requires the privilege [`INTEGRATIONS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: updateStatusCheckIntegration
      parameters:
      - name: type
        in: query
        schema:
          type: string
          enum:
          - JIRA
          - DATADOG
          - DATADOG_EU
          - DATADOG_US3
          - DATADOG_US5
          - DATADOG_US1_FED
          - PAGERDUTY
          - NEWRELIC
          - GRAFANA
          - DYNATRACE
          - APPDYNAMICS
          - PROMETHEUS
          - CUSTOM
          - K6
          - LOAD_GENERATOR_CUSTOM
          - AWS
          - AZURE
      - name: observabilityToolType
        in: query
        schema:
          type: string
          enum:
          - DATADOG
          - PAGERDUTY
          - NEWRELIC
          - GRAFANA
          - DYNATRACE
          - APPDYNAMICS
          - PROMETHEUS
          - CUSTOM
          - AWS
          - AZURE
      - name: domain
        in: query
        schema:
          maxLength: 255
          minLength: 0
          type: string
      - name: name
        in: query
        required: true
        schema:
          type: string
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTeamExternalIntegrationRequest'
        required: true
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamExternalIntegrationResponse'
        '403':
          description: 'User requires privilege for target team: INTEGRATIONS_WRITE'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - INTEGRATIONS_WRITE
    post:
      tags:
      - external-integrations
      summary: Create new team integration that is compatible with Health Checks.
      description: Requires the privilege [`INTEGRATIONS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: createStatusCheckIntegration
      parameters:
      - name: type
        in: query
        schema:
          type: string
          enum:
          - JIRA
          - DATADOG
          - DATADOG_EU
          - DATADOG_US3
          - DATADOG_US5
          - DATADOG_US1_FED
          - PAGERDUTY
          - NEWRELIC
          - GRAFANA
          - DYNATRACE
          - APPDYNAMICS
          - PROMETHEUS
          - CUSTOM
          - K6
          - LOAD_GENERATOR_CUSTOM
          - AWS
          - AZURE
      - name: observabilityToolType
        in: query
        schema:
          type: string
          enum:
          - DATADOG
          - PAGERDUTY
          - NEWRELIC
          - GRAFANA
          - DYNATRACE
          - APPDYNAMICS
          - PROMETHEUS
          - CUSTOM
          - AWS
          - AZURE
      - name: domain
        in: query
        schema:
          maxLength: 255
          minLength: 0
          type: string
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTeamExternalIntegrationRequest'
        required: true
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamExternalIntegrationResponse'
        '403':
          description: 'User requires privilege for target team: INTEGRATIONS_WRITE'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - INTEGRATIONS_WRITE
    delete:
      tags:
      - external-integrations
      summary: Remove a team integration that is compatible with Health Checks.
      description: Requires the privilege [`INTEGRATIONS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: removeStatusCheckIntegration
      parameters:
      - name: type
        in: query
        schema:
          type: string
          enum:
          - JIRA
          - DATADOG
          - DATADOG_EU
          - DATADOG_US3
          - DATADOG_US5
          - DATADOG_US1_FED
          - PAGERDUTY
          - NEWRELIC
          - GRAFANA
          - DYNATRACE
          - APPDYNAMICS
          - PROMETHEUS
          - CUSTOM
          - K6
          - LOAD_GENERATOR_CUSTOM
          - AWS
          - AZURE
      - name: observabilityToolType
        in: query
        schema:
          type: string
          enum:
          - DATADOG
          - PAGERDUTY
          - NEWRELIC
          - GRAFANA
          - DYNATRACE
          - APPDYNAMICS
          - PROMETHEUS
          - CUSTOM
          - AWS
          - AZURE
      - name: domain
        in: query
        schema:
          maxLength: 255
          minLength: 0
          type: string
      - name: name
        in: query
        required: true
        schema:
          type: string
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
        '403':
          description: 'User requires privilege for target team: INTEGRATIONS_WRITE'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - INTEGRATIONS_WRITE
components:
  schemas:
    CreateTeamExternalIntegrationRequest:
      required:
      - lastAuthenticationStatus
      - name
      - privateNetwork
      type: object
      properties:
        url:
          type: string
          description: Uri of the configuration
          format: url
        headers:
          type: object
          additionalProperties:
            type: string
            description: Headers of configuration
          description: Headers of configuration
        headersArn:
          type: string
          description: Arn of remote header configuration
        name:
          type: string
          description: Name of configuration
        privateNetwork:
          type: boolean
          description: Is private network
        lastAuthenticationStatus:
          type: string
          description: Last authentication status
          enum:
          - AUTHENTICATED
          - UNAUTHENTICATED
          - UNTESTED
        integrationSpecificValues:
          type: object
          additionalProperties:
            type: string
            description: Map of values required for a specific integration, for example AWS credentials AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
          description: Map of values required for a specific integration, for example AWS credentials AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
        multiSelectTags:
          type: object
          additionalProperties:
            type: array
            description: The tags associated with this integration
            items:
              type: string
              description: The tags associated with this integration
          description: The tags associated with this integration
      description: Represents the configuration for an external integration
    ExternalIntegrationResponse:
      type: object
      properties:
        userId:
          type: string
        type:
          type: string
          enum:
          - JIRA
          - DATADOG
          - DATADOG_EU
          - DATADOG_US3
          - DATADOG_US5
          - DATADOG_US1_FED
          - PAGERDUTY
          - NEWRELIC
          - GRAFANA
          - DYNATRACE
          - APPDYNAMICS
          - PROMETHEUS
          - CUSTOM
          - K6
          - LOAD_GENERATOR_CUSTOM
          - AWS
          - AZURE
        accountId:
          type: string
        url:
          type: string
    TeamExternalIntegrationsResponse:
      type: object
      properties:
        integrations:
          type: array
          items:
            $ref: '#/components/schemas/TeamExternalIntegrationResponse'
    TeamExternalIntegrationResponse:
      type: object
      properties:
        identifier:
          type: string
        userId:
          type: string
        type:
          type: string
          enum:
          - JIRA
          - DATADOG
          - DATADOG_EU
          - DATADOG_US3
          - DATADOG_US5
          - DATADOG_US1_FED
          - PAGERDUTY
          - NEWRELIC
          - GRAFANA
          - DYNATRACE
          - APPDYNAMICS
          - PROMETHEUS
          - CUSTOM
          - K6
          - LOAD_GENERATOR_CUSTOM
          - AWS
          - AZURE
        observabilityToolType:
          type: string
          enum:
          - DATADOG
          - PAGERDUTY
          - NEWRELIC
          - GRAFANA
          - DYNATRACE
          - APPDYNAMICS
          - PROMETHEUS
          - CUSTOM
          - AWS
          - AZURE
        domain:
          type: string
        url:
          type: string
          format: url
        headers:
          type: object
          additionalProperties:
            type: string
        headersArn:
          type: string
        name:
          type: string
        teamId:
          type: string
        privateNetwork:
          type: boolean
        canBeUsedAsStatusCheck:
          type: boolean
        lastAuthenticationStatus:
          type: string
          enum:
          - AUTHENTICATED
          - UNAUTHENTICATED
          - UNTESTED
        integrationSpecificValues:
          type: object
          additionalProperties:
            type: string
        createdAt:
          type: string
          format: date-time
        multiSelectTags:
          type: object
          additionalProperties:
            type: array
            items:
              type: string