openapi: 3.0.1 info: title: Gremlin agents integration-invocations 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: integration-invocations description: Used for interacting with the Private Network Integration paths: /integration-invocations: get: tags: - integration-invocations summary: Returns recent private network invocations description: 'This operation will return a list of matching invocations Requires the privilege [`MINIMUM_TEAM_PRIVILEGES`](https://www.gremlin.com/docs/user-management/access-control/#privileges)' operationId: list_1 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/PrivateNetworkInvocationModelResponse' '403': description: 'User requires privilege for target team: MINIMUM_TEAM_PRIVILEGES' '401': description: Authorization header missing or malformed. Please provide proper credentials in the authorization header. security: - privilege: - MINIMUM_TEAM_PRIVILEGES post: tags: - integration-invocations summary: Creates a webhook invocation based on the endpoint configuration description: Requires the privilege [`MINIMUM_TEAM_PRIVILEGES`](https://www.gremlin.com/docs/user-management/access-control/#privileges) operationId: createInvocation parameters: - name: teamId in: query description: Required when using company session token. required: true schema: type: string requestBody: description: JSON request to create a private network integration content: application/json: schema: $ref: '#/components/schemas/CreatePrivateNetworkInvocationRequest' required: true responses: '400': description: Bad Request '403': description: 'User requires privilege for target team: MINIMUM_TEAM_PRIVILEGES' '401': description: Authorization header missing or malformed. Please provide proper credentials in the authorization header. security: - privilege: - MINIMUM_TEAM_PRIVILEGES /integration-invocations/{invocationId}/run-test-endpoint: post: tags: - integration-invocations summary: Test an endpoint configuration. description: Requires the privilege [`INTEGRATIONS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges) operationId: testEndpointConfiguration parameters: - name: invocationId in: path required: true schema: type: string - name: teamId in: query description: Required when using company session token. required: true schema: type: string responses: '200': description: Success '204': description: No Content '400': description: Bad Request '404': description: Not found '500': description: Internal error '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 /integration-invocations/{invocationId}/run-test-evaluation: post: tags: - integration-invocations summary: Test an evaluation configuration. description: Requires the privilege [`INTEGRATIONS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges) operationId: testEvaluationConfiguration parameters: - name: invocationId in: path required: true schema: type: string - name: teamId in: query description: Required when using company session token. required: true schema: type: string requestBody: description: Request containing the evaluation configuration content: application/json: schema: $ref: '#/components/schemas/TestPrivateNetworkEvaluationConfigurationRequest' required: true responses: '200': description: Success '400': description: Bad Request '404': description: Not found '204': description: No Content '500': description: Internal error '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: 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 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 PrivateNetworkInvocationModel: type: object properties: companyId: type: string invocationId: type: string status: type: string enum: - SUCCESS - ERROR - TIMEOUT - AGENT_TIMEOUT - UNKNOWN - PENDING - RUNNING webhookId: type: string requestProperties: $ref: '#/components/schemas/PrivateNetworkRequestPropertiesModel' responses: type: array items: $ref: '#/components/schemas/PrivateNetworkResponsePropertiesModel' noOfRetries: type: integer format: int32 timeout: type: integer format: int32 retryWaitTime: type: integer format: int32 createdAt: type: string format: date-time updatedAt: type: string format: date-time executedByClientID: type: string errorMessage: type: string teamId: type: string tags: type: object additionalProperties: type: array items: type: string 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 PrivateNetworkResponsePropertiesModel: type: object properties: invocationTime: type: string format: date-time httpStatusCode: type: integer format: int32 requestLatencyMs: type: integer format: int32 responseBody: type: string contentType: type: string responseHeaders: type: object additionalProperties: type: string TeamExternalIntegrationReference: title: StatusCheckRequest.TeamExternalIntegrationReference required: - name type: object properties: type: type: string description: The type of the external integration for the health check to be created/updated 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 description: The observability tool type of the external integration for the health check to be created/updated enum: - DATADOG - PAGERDUTY - NEWRELIC - GRAFANA - DYNATRACE - APPDYNAMICS - PROMETHEUS - CUSTOM - AWS - AZURE domain: type: string description: The domain of the observability tool type of the external integration for the health check to be created/updated name: type: string description: The name of the external integration for the health check to be created/updated description: Represents the configuration for referencing an external integration CreatePrivateNetworkInvocationRequest: required: - endpointConfiguration type: object properties: endpointConfiguration: $ref: '#/components/schemas/EndpointConfiguration' teamExternalIntegration: $ref: '#/components/schemas/TeamExternalIntegrationReference' webhookId: type: string multiSelectTags: type: object additionalProperties: type: array items: type: string PrivateNetworkInvocationModelResponse: type: object properties: invocations: type: array items: $ref: '#/components/schemas/PrivateNetworkInvocationModel' HasCompareFunctionObject: type: object PrivateNetworkRequestPropertiesModel: type: object properties: uri: type: string format: url headers: type: object additionalProperties: type: string method: type: string enum: - GET - POST - PUT payload: type: string headersArn: type: string TestPrivateNetworkEvaluationConfigurationRequest: required: - evaluationConfiguration type: object properties: evaluationConfiguration: $ref: '#/components/schemas/EvaluationConfiguration' 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