Gremlin aws.metadata API

Get metadata about the AWS IAM role creation for health checks

OpenAPI Specification

gremlin-aws-metadata-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Gremlin agents aws.metadata 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: aws.metadata
  description: Get metadata about the AWS IAM role creation for health checks
paths:
  /aws/metadata/autoscaling-groups:
    get:
      tags:
      - aws.metadata
      summary: Queries Gremlin's view of Autoscaling Groups in a given AWS account
      description: "This endpoint returns Gremlin's view of Autoscaling Groups in a given AWS account.  The `domain` parameter refers to the AWS AccountId.  \nNOTE: This endpoint may (or may not) return Autoscaling Groups which have already been assigned to Gremlin Services, or ones which we cannot assign to Gremlin Services\nRequires the privilege [`MINIMUM_TEAM_PRIVILEGES`](https://www.gremlin.com/docs/user-management/access-control/#privileges)"
      operationId: getAutoscalingGroupsForAccount
      parameters:
      - name: domain
        in: query
        required: true
        schema:
          type: string
      - name: mode
        in: query
        schema:
          type: string
          enum:
          - Onboarding
      - 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/AwsAutoscalingGroupsForAccount'
        '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
  /aws/metadata/iam-role:
    get:
      tags:
      - aws.metadata
      summary: Returns the policy document necessary for Gremlin to access AWS resources.
      description: "This endpoint provides the policy document and associated trust policies so that Gremlin can access an arbitrary AWS account. This endpoint also provides a link to a CloudFormationTemplate for applying this to your AWS account. \nSee: https://www.gremlin.com/docs/aws-quick-start-guide for more info\n\nRequires the privilege [`MINIMUM_TEAM_PRIVILEGES`](https://www.gremlin.com/docs/user-management/access-control/#privileges)"
      operationId: getAwsMetadataIamRole
      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/AwsMetadataIamRoleResponse'
        '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
  /aws/metadata/load-balancers:
    get:
      tags:
      - aws.metadata
      summary: Queries Gremlin's view of Load balancers in a given AWS account
      description: "This endpoint returns Gremlin's view of Load Balancers in a given AWS account.  These can then be used to create Gremlin Services or Intelligent Health checks.  \nThe `domain` parameter refers to the AWS AccountId.  \nNOTE: This endpoint may (or may not) return Load Balancers which have already been assigned to Gremlin Services, or ones which we cannot assign to Gremlin Services (eg. LBs with no hosts behind them)\nRequires the privilege [`MINIMUM_TEAM_PRIVILEGES`](https://www.gremlin.com/docs/user-management/access-control/#privileges)"
      operationId: getLoadBalancersForAccount
      parameters:
      - name: domain
        in: query
        required: true
        schema:
          type: string
      - name: mode
        in: query
        schema:
          type: string
          enum:
          - Onboarding
      - 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/AwsLoadBalancersForAccount'
        '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
components:
  schemas:
    AwsAutoscalingGroupsForAccount:
      type: object
      properties:
        domain:
          type: string
        autoscalingGroups:
          type: array
          items:
            $ref: '#/components/schemas/AwsAutoscalingGroupResponse'
    TargetingStrategy:
      required:
      - type
      type: object
      properties:
        type:
          type: string
      discriminator:
        propertyName: type
    AwsLoadBalancersForAccount:
      type: object
      properties:
        domain:
          type: string
        loadBalancers:
          type: array
          items:
            $ref: '#/components/schemas/AwsLoadBalancerResponse'
    AwsLoadBalancerResponse:
      type: object
      properties:
        type:
          type: string
        name:
          type: string
        arn:
          type: string
        dnsName:
          type: string
        region:
          type: string
        tags:
          type: object
          additionalProperties:
            type: string
        serviceIds:
          type: array
          items:
            type: string
        targetingStrategy:
          $ref: '#/components/schemas/TargetingStrategy'
        targetingStrategyDetectionScore:
          type: number
          format: double
        discoveredAt:
          type: string
          format: date-time
    AwsMetadataIamRoleResponse:
      type: object
      properties:
        cfnTemplateLink:
          type: string
        permissionPolicy:
          type: string
        managedPolicies:
          type: array
          items:
            type: string
        trustPolicy:
          type: string
    AwsAutoscalingGroupResponse:
      type: object
      properties:
        name:
          type: string
        arn:
          type: string
        region:
          type: string
        serviceIds:
          type: array
          items:
            type: string
        discoveredAt:
          type: string
          format: date-time