Gremlin disaster-recovery-test-reports API

Get and list disaster recovery test reports

OpenAPI Specification

gremlin-disaster-recovery-test-reports-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Gremlin agents disaster-recovery-test-reports 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: disaster-recovery-test-reports
  description: Get and list disaster recovery test reports
paths:
  /disaster-recovery-test-reports/{identifier}:
    get:
      tags:
      - disaster-recovery-test-reports
      summary: Gets a disaster recovery test report
      description: Requires the privilege [`DISASTER_RECOVERY_TESTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: getLargeScaleTest
      parameters:
      - name: identifier
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LargeScaleTestReportResponse'
        '403':
          description: 'User requires privilege: DISASTER_RECOVERY_TESTS_READ'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - DISASTER_RECOVERY_TESTS_READ
  /disaster-recovery-test-reports/{identifier}/pdf:
    get:
      tags:
      - disaster-recovery-test-reports
      summary: Gets a disaster recovery test report as PDF
      description: Requires the privilege [`DISASTER_RECOVERY_TESTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: getLargeScaleTestPDF
      parameters:
      - name: identifier
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/octet-stream: {}
        '403':
          description: 'User requires privilege: DISASTER_RECOVERY_TESTS_READ'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - DISASTER_RECOVERY_TESTS_READ
  /disaster-recovery-test-reports:
    get:
      tags:
      - disaster-recovery-test-reports
      summary: Gets a page of disaster recovery test reports
      description: Requires the privilege [`DISASTER_RECOVERY_TESTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: getLargeScaleTests
      parameters:
      - name: pageToken
        in: query
        schema:
          type: string
      - name: pageSize
        in: query
        description: This value determines how many results will be returned per call.
        schema:
          maximum: 100
          type: integer
          format: int32
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponseLargeScaleTestReportResponse'
        '403':
          description: 'User requires privilege: DISASTER_RECOVERY_TESTS_READ'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - DISASTER_RECOVERY_TESTS_READ
components:
  schemas:
    ExternalActionNode:
      type: object
      allOf:
      - $ref: '#/components/schemas/GraphNodeObject'
      - type: object
        properties:
          externalActionRequest:
            $ref: '#/components/schemas/ExternalActionRequest'
          state:
            $ref: '#/components/schemas/State'
          stateDetails:
            $ref: '#/components/schemas/ExternalCallFailedException'
    ResponseBodyEvaluation:
      required:
      - op
      - predicates
      type: object
      properties:
        op:
          type: string
          description: The operation to logically combine predicates into a success or failure
          enum:
          - AND
          - OR
        predicates:
          type: array
          description: The list of predicates to evaluate against the status check response body
          items:
            $ref: '#/components/schemas/PredicateObject'
      description: The configuration for evaluating the success of a response body
    StatusCheckNodeRequest:
      type: object
      properties:
        type:
          type: string
      discriminator:
        propertyName: type
    HasCompareFunctionObject:
      type: object
    LargeScaleTestReportResponse:
      type: object
      properties:
        companyId:
          type: string
        identifier:
          type: string
        name:
          type: string
        reliabilityTest:
          $ref: '#/components/schemas/ReliabilityTestResponse'
        actualTestDurationMillis:
          type: integer
          format: int64
        startTime:
          type: string
          format: date-time
        endTime:
          type: string
          format: date-time
        sortedRunResults:
          type: array
          items:
            $ref: '#/components/schemas/ServiceRunDetails'
        participationSummary:
          type: object
          additionalProperties:
            type: integer
            format: int64
        statusChecks:
          type: array
          items:
            $ref: '#/components/schemas/StatusCheckNode'
        scenarioOverrides:
          $ref: '#/components/schemas/ScenarioOverrides'
    PagedResponseLargeScaleTestReportResponse:
      type: object
      properties:
        pageNumber:
          type: integer
          format: int32
        pageSize:
          type: integer
          description: 'The size of the page requested. If none was supplied this is a default value (depending on the endpoint).

            If the length of items is less than this number that means there are _no_ more pages to request.


            NOTE: if the length *is* equal there may or may not be additional pages to request, it is unknowable until they are requested

            '
          format: int32
        pageToken:
          type: string
          description: Supply this token on successive requests to retrieve the next page if there is one
        items:
          type: array
          items:
            $ref: '#/components/schemas/LargeScaleTestReportResponse'
    ServiceRunDetails:
      type: object
      properties:
        teamId:
          type: string
        teamName:
          type: string
        serviceId:
          type: string
        serviceName:
          type: string
        multiSelectTags:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        scenarioRunId:
          type: string
        scenarioRunNumber:
          type: integer
          format: int64
        scenarioRunStage:
          type: string
        scenarioPassCriteria:
          type: string
          enum:
          - ALL_PASS
          - AT_LEAST_ONE_FAILED
        scenarioRunStatus:
          type: string
        scenarioRunStartTime:
          type: string
          format: date-time
        scenarioRunEndTime:
          type: string
          format: date-time
    EndpointConfiguration:
      required:
      - url
      type: object
      properties:
        url:
          type: string
          description: The URL of the status check
          format: url
        method:
          type: string
          description: The method type of the status check
          enum:
          - GET
          - POST
          - PUT
          - PATCH
        headers:
          type: object
          additionalProperties:
            type: string
            description: Optional request headers to be used when the status check is invoked
          description: Optional request headers to be used when the status check is invoked
        payload:
          type: string
          description: Payload for POST type of request
        headersArn:
          type: string
          description: Optional request headers pulled from a remote AWS resource holding JSON-encoded key-values that make up the headers
    ExternalActionRequest:
      required:
      - type
      type: object
      properties:
        semanticType:
          type: string
        type:
          type: string
      discriminator:
        propertyName: type
    ReliabilityTestResponse:
      type: object
      properties:
        accessType:
          type: string
          enum:
          - Global
          - Company
          - Team
        guid:
          type: string
        scenario:
          $ref: '#/components/schemas/ScenarioResponse'
    StatusCheckNode:
      type: object
      allOf:
      - $ref: '#/components/schemas/GraphNodeObject'
      - type: object
        properties:
          state:
            $ref: '#/components/schemas/State'
          name:
            type: string
          description:
            type: string
          thirdPartyPresets:
            type: string
          category:
            type: string
            enum:
            - ERRORS
            - LATENCY
            - REQUESTS
            - UNKNOWN
          requestConfiguration:
            $ref: '#/components/schemas/StatusCheckNodeRequest'
          endpointConfiguration:
            $ref: '#/components/schemas/EndpointConfiguration'
          rawEndpointConfiguration:
            $ref: '#/components/schemas/EndpointConfiguration'
          evaluationConfiguration:
            $ref: '#/components/schemas/EvaluationConfiguration'
          statusCheckId:
            type: string
          externalIntegrationId:
            type: string
          statusCheckReferenceId:
            type: string
          isPrivateNetwork:
            type: boolean
          isHaltable:
            type: boolean
          payload:
            type: string
          isAutoGenerated:
            type: boolean
          autoGeneratedStatusCheckId:
            type: string
          resourceIdentifier:
            type: string
          statusCheckRequest:
            $ref: '#/components/schemas/StatusCheckNodeRequest'
          intervalSeconds:
            type: integer
            format: int32
          additionalTimeInSecsToRunAfterCompletion:
            type: integer
            format: int32
    ScenarioOverrides:
      type: object
      properties:
        zones:
          type: array
          items:
            type: string
        dns:
          type: string
        failureFlag:
          $ref: '#/components/schemas/Selector'
    RollbackExternalActionNode:
      type: object
      allOf:
      - $ref: '#/components/schemas/GraphNodeObject'
      - type: object
        properties:
          referenceExternalActionId:
            type: string
          state:
            $ref: '#/components/schemas/State'
          stateDetails:
            $ref: '#/components/schemas/ExternalCallFailedException'
          externalActionRequest:
            $ref: '#/components/schemas/ExternalActionRequest'
          externalActionLifecycle:
            type: string
            enum:
            - NotStarted
            - Active
            - HaltRequested
            - Successful
            - Halted
            - Failed
          didExternalActionNoOp:
            type: boolean
    GraphNodeObject:
      type: object
      properties:
        type:
          type: string
          enum:
          - Concurrent
          - ContinuousStatusCheck
          - StatusCheckNode
          - Delay
          - InfraAttack
          - SynchronousStatusCheck
          - Continuous
          - FailureFlag
          - ExternalAction
          - RollbackExternalAction
        id:
          type: string
        state:
          type: object
          readOnly: true
        guid:
          type: string
        next:
          type: string
      discriminator:
        propertyName: type
    State:
      type: object
      properties:
        lifecycle:
          type: string
          enum:
          - NotStarted
          - Active
          - HaltRequested
          - Successful
          - Halted
          - Failed
        startTime:
          type: string
          format: date-time
        endTime:
          type: string
          format: date-time
        failedReason:
          type: string
        nodeHaltedByGuid:
          type: string
        nodeHaltedById:
          type: string
      readOnly: true
    EvaluationConfiguration:
      required:
      - okStatusCodes
      type: object
      properties:
        okLatencyMaxMs:
          type: integer
          description: The maximum latency in milliseconds for a successful status check
          format: int32
        okStatusCodes:
          type: array
          description: The list of successful response status codes for a successful status check
          items:
            type: string
            description: The list of successful response status codes for a successful status check
        responseBodyEvaluation:
          $ref: '#/components/schemas/ResponseBodyEvaluation'
      description: The configuration for evaluating the success/failure of a status check
    Selector:
      required:
      - labels
      - name
      type: object
      properties:
        name:
          type: string
        labels:
          type: object
          additionalProperties:
            type: array
            description: Label selectors for matching resources
            example:
              foo:
              - bar
              - baz
            items:
              type: string
              description: Label selectors for matching resources
              example: '{"foo":["bar","baz"]}'
          description: Label selectors for matching resources
          example:
            foo:
            - bar
            - baz
    ScenarioResponse:
      type: object
      properties:
        orgId:
          type: string
        guid:
          type: string
        name:
          type: string
        description:
          type: string
        hypothesis:
          type: string
        steps:
          type: array
          items:
            type: object
            additionalProperties:
              type: object
        graph:
          $ref: '#/components/schemas/ScenarioGraph'
        state:
          type: string
        createSource:
          type: string
        createdBy:
          type: string
        updatedBy:
          type: string
        createdAt:
          type: string
        updatedAt:
          type: string
        lastRunAt:
          type: string
        recommendedScenarioId:
          type: string
        multiSelectTags:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        createdFromType:
          type: string
          enum:
          - Recommended
          - Shared
        createdFromId:
          type: string
        editCounter:
          type: integer
          format: int32
        version:
          type: integer
          format: int64
        passCriteria:
          type: string
          enum:
          - ALL_PASS
          - AT_LEAST_ONE_FAILED
        eligibleForServiceCreation:
          type: boolean
    ExternalCallFailedException:
      type: object
      properties:
        cause:
          type: object
          properties:
            stackTrace:
              type: array
              items:
                type: object
                properties:
                  classLoaderName:
                    type: string
                  moduleName:
                    type: string
                  moduleVersion:
                    type: string
                  methodName:
                    type: string
                  fileName:
                    type: string
                  lineNumber:
                    type: integer
                    format: int32
                  className:
                    type: string
                  nativeMethod:
                    type: boolean
            message:
              type: string
            localizedMessage:
              type: string
        stackTrace:
          type: array
          items:
            type: object
            properties:
              classLoaderName:
                type: string
              moduleName:
                type: string
              moduleVersion:
                type: string
              methodName:
                type: string
              fileName:
                type: string
              lineNumber:
                type: integer
                format: int32
              className:
                type: string
              nativeMethod:
                type: boolean
        errorCode:
          type: string
        requestId:
          type: string
        statusCode:
          type: integer
          format: int32
        message:
          type: string
        suppressed:
          type: array
          items:
            type: object
            properties:
              stackTrace:
                type: array
                items:
                  type: object
                  properties:
                    classLoaderName:
                      type: string
                    moduleName:
                      type: string
                    moduleVersion:
                      type: string
                    methodName:
                      type: string
                    fileName:
                      type: string
                    lineNumber:
                      type: integer
                      format: int32
                    className:
                      type: string
                    nativeMethod:
                      type: boolean
              message:
                type: string
              localizedMessage:
                type: string
        localizedMessage:
          type: string
    PredicateObject:
      required:
      - jpQuery
      - rValue
      - type
      type: object
      properties:
        comparator:
          $ref: '#/components/schemas/HasCompareFunctionObject'
        type:
          type: string
          description: The type of primitive this predicate operates on
          enum:
          - String
          - Number
          - Boolean
        jpQuery:
          type: string
          description: The json path query to run to read from the response body
        rValue:
          type: object
          description: The right hand value of the predicate
      description: The list of predicates to evaluate against the status check response body
      discriminator:
        propertyName: type
    ScenarioGraph:
      type: object
      properties:
        nodes:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/GraphNodeObject'
        startId:
          type: string
        observers:
          type: array
          items:
            $ref: '#/components/schemas/StatusCheckNode'
        externalActions:
          type: array
          items:
            $ref: '#/components/schemas/ExternalActionNode'
        externalRollbacks:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/RollbackExternalActionNode'
        nodesRecursive:
          type: array
          items:
            $ref: '#/components/schemas/GraphNodeObject'
        expectedLengthWithDelays:
          type: integer
          format: int32
          readOnly: true
        eligibleForServiceCreation:
          type: boolean
        expectedLength:
          type: integer
          format: int32
          readOnly: true
        attackTypeQuantity:
          type: object
          additionalProperties:
            type: integer
            format: int64
            readOnly: true
          readOnly: true
        providersCountForNodes:
          type: object
          additionalProperties:
            type: integer
            format: int32
            readOnly: true
          readOnly: true