Spot Elastigroup AWS API

Manage Elastigroup compute groups in AWS.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

flexera-elastigroup-aws-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Spot Administration Access Policies Elastigroup AWS API
  description: The Spot Administration API provides endpoints for managing organizations, accounts, users, access policies, cloud credentials, subscriptions, and event notifications within the Spot by Flexera platform. It enables programmatic control over user permissions, account setup, and cloud provider credential linking for AWS, Azure, and GCP.
  version: 2.0.0
  contact:
    name: Spot by Flexera
    url: https://docs.spot.io/
  termsOfService: https://spot.io/terms-of-use/
servers:
- url: https://api.spotinst.io
  description: Spot Production API
security:
- bearerAuth: []
tags:
- name: Elastigroup AWS
  description: Manage Elastigroup compute groups in AWS.
paths:
  /aws/ec2/group:
    post:
      operationId: createElastigroupAWS
      summary: Spot Create Elastigroup (aws)
      description: Create a new Elastigroup in AWS.
      tags:
      - Elastigroup AWS
      parameters:
      - name: accountId
        in: query
        description: The Spot account ID.
        schema:
          type: string
        example: '500123'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ElastigroupAWSRequest'
            examples:
              CreateelastigroupawsRequestExample:
                summary: Default createElastigroupAWS request
                x-microcks-default: true
                value:
                  group:
                    name: Example Title
                    description: A sample description.
                    region: example_value
                    capacity:
                      target: 10
                      minimum: 10
                      maximum: 10
                      unit: instance
                    strategy:
                      risk: 10
                      onDemandCount: 10
                      availabilityVsCost: balanced
                      fallbackToOd: true
                      utilizeReservedInstances: true
                    compute:
                      instanceTypes:
                        ondemand: example_value
                        spot: {}
                      availabilityZones:
                      - {}
                      launchSpecification:
                        imageId: '500123'
                        securityGroupIds: {}
                        keyPair: example_value
                    scheduling:
                      tasks:
                      - {}
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ElastigroupResponse'
              examples:
                Createelastigroupaws200Example:
                  summary: Default createElastigroupAWS 200 response
                  x-microcks-default: true
                  value:
                    request: example_value
                    response:
                      items:
                      - {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    get:
      operationId: listElastigroupsAWS
      summary: Spot List Elastigroups (aws)
      description: List all Elastigroups in the specified account.
      tags:
      - Elastigroup AWS
      parameters:
      - name: accountId
        in: query
        description: The Spot account ID.
        schema:
          type: string
        example: '500123'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ElastigroupListResponse'
              examples:
                Listelastigroupsaws200Example:
                  summary: Default listElastigroupsAWS 200 response
                  x-microcks-default: true
                  value:
                    request: example_value
                    response:
                      items:
                      - {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /aws/ec2/group/{groupId}:
    get:
      operationId: getElastigroupAWS
      summary: Spot Get Elastigroup (aws)
      description: Get the configuration of an existing Elastigroup.
      tags:
      - Elastigroup AWS
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
        example: '500123'
      - name: accountId
        in: query
        schema:
          type: string
        example: '500123'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ElastigroupResponse'
              examples:
                Getelastigroupaws200Example:
                  summary: Default getElastigroupAWS 200 response
                  x-microcks-default: true
                  value:
                    request: example_value
                    response:
                      items:
                      - {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: updateElastigroupAWS
      summary: Spot Update Elastigroup (aws)
      description: Update an existing Elastigroup configuration.
      tags:
      - Elastigroup AWS
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
        example: '500123'
      - name: accountId
        in: query
        schema:
          type: string
        example: '500123'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ElastigroupAWSRequest'
            examples:
              UpdateelastigroupawsRequestExample:
                summary: Default updateElastigroupAWS request
                x-microcks-default: true
                value:
                  group:
                    name: Example Title
                    description: A sample description.
                    region: example_value
                    capacity:
                      target: 10
                      minimum: 10
                      maximum: 10
                      unit: instance
                    strategy:
                      risk: 10
                      onDemandCount: 10
                      availabilityVsCost: balanced
                      fallbackToOd: true
                      utilizeReservedInstances: true
                    compute:
                      instanceTypes:
                        ondemand: example_value
                        spot: {}
                      availabilityZones:
                      - {}
                      launchSpecification:
                        imageId: '500123'
                        securityGroupIds: {}
                        keyPair: example_value
                    scheduling:
                      tasks:
                      - {}
      responses:
        '200':
          description: Successful response
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteElastigroupAWS
      summary: Spot Delete Elastigroup (aws)
      description: Delete an existing Elastigroup.
      tags:
      - Elastigroup AWS
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
        example: '500123'
      - name: accountId
        in: query
        schema:
          type: string
        example: '500123'
      responses:
        '200':
          description: Successful response
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /aws/ec2/group/{groupId}/status:
    get:
      operationId: getElastigroupStatusAWS
      summary: Spot Get Elastigroup Status (aws)
      description: Get the status of instances in an Elastigroup.
      tags:
      - Elastigroup AWS
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
        example: '500123'
      - name: accountId
        in: query
        schema:
          type: string
        example: '500123'
      responses:
        '200':
          description: Successful response
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /aws/ec2/group/{groupId}/scale/up:
    put:
      operationId: scaleUpElastigroupAWS
      summary: Spot Scale up Elastigroup (aws)
      description: Scale up the number of instances in an Elastigroup.
      tags:
      - Elastigroup AWS
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
        example: '500123'
      - name: adjustment
        in: query
        description: Number of instances to add.
        schema:
          type: integer
        example: 10
      responses:
        '200':
          description: Successful response
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /aws/ec2/group/{groupId}/scale/down:
    put:
      operationId: scaleDownElastigroupAWS
      summary: Spot Scale Down Elastigroup (aws)
      description: Scale down the number of instances in an Elastigroup.
      tags:
      - Elastigroup AWS
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
        example: '500123'
      - name: adjustment
        in: query
        description: Number of instances to remove.
        schema:
          type: integer
        example: 10
      responses:
        '200':
          description: Successful response
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /aws/ec2/group/{groupId}/logs:
    get:
      operationId: getElastigroupLogs
      summary: Spot Get Elastigroup Logs
      description: Retrieve activity logs for an Elastigroup.
      tags:
      - Elastigroup AWS
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
        example: '500123'
      - name: fromDate
        in: query
        schema:
          type: string
          format: date-time
        example: '2026-01-15T10:30:00Z'
      - name: toDate
        in: query
        schema:
          type: string
          format: date-time
        example: '2026-01-15T10:30:00Z'
      responses:
        '200':
          description: Successful response
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /aws/ec2/group/{groupId}/costs:
    get:
      operationId: getElastigroupCosts
      summary: Spot Get Elastigroup Costs
      description: Retrieve cost information for an Elastigroup.
      tags:
      - Elastigroup AWS
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
        example: '500123'
      - name: fromDate
        in: query
        schema:
          type: string
          format: date
        example: '2026-01-15'
      - name: toDate
        in: query
        schema:
          type: string
          format: date
        example: '2026-01-15'
      responses:
        '200':
          description: Successful response
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    ElastigroupListResponse:
      type: object
      properties:
        request:
          type: object
          example: example_value
        response:
          type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/Elastigroup'
          example: example_value
    ElastigroupAWSRequest:
      type: object
      properties:
        group:
          type: object
          properties:
            name:
              type: string
            description:
              type: string
            region:
              type: string
            capacity:
              type: object
              properties:
                target:
                  type: integer
                minimum:
                  type: integer
                maximum:
                  type: integer
                unit:
                  type: string
                  enum:
                  - instance
                  - weight
            strategy:
              type: object
              properties:
                risk:
                  type: integer
                  description: Percentage of spot instances (0-100).
                onDemandCount:
                  type: integer
                availabilityVsCost:
                  type: string
                  enum:
                  - balanced
                  - costOriented
                  - availabilityOriented
                  - cheapest
                fallbackToOd:
                  type: boolean
                utilizeReservedInstances:
                  type: boolean
            compute:
              type: object
              properties:
                instanceTypes:
                  type: object
                  properties:
                    ondemand:
                      type: string
                    spot:
                      type: array
                      items:
                        type: string
                availabilityZones:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                      subnetId:
                        type: string
                launchSpecification:
                  type: object
                  properties:
                    imageId:
                      type: string
                    securityGroupIds:
                      type: array
                      items:
                        type: string
                    keyPair:
                      type: string
            scheduling:
              type: object
              properties:
                tasks:
                  type: array
                  items:
                    type: object
                    properties:
                      isEnabled:
                        type: boolean
                      taskType:
                        type: string
                      cronExpression:
                        type: string
          example: example_value
    Elastigroup:
      type: object
      properties:
        id:
          type: string
          example: abc123
        name:
          type: string
          example: Example Title
        description:
          type: string
          example: A sample description.
        region:
          type: string
          example: example_value
        capacity:
          type: object
          properties:
            target:
              type: integer
            minimum:
              type: integer
            maximum:
              type: integer
          example: example_value
        createdAt:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
        updatedAt:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
    ElastigroupResponse:
      type: object
      properties:
        request:
          type: object
          example: example_value
        response:
          type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/Elastigroup'
          example: example_value
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Spot API uses Bearer Token Authentication. Include your API token in the Authorization header.