Spot by NetApp Elastigroup AWS API

The Elastigroup AWS API from Spot by NetApp — 6 operation(s) for elastigroup aws.

OpenAPI Specification

spot-by-netapp-elastigroup-aws-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Spot by NetApp Audit Service Elastigroup AWS API
  description: Spot by NetApp (formerly Spot by Flexera, originally Spotinst) is a cloud infrastructure optimization platform providing automated cost optimization, scaling, and management for cloud workloads across AWS, Azure, and GCP. The API enables management of Elastigroup (intelligent auto-scaling groups), Ocean (container and Kubernetes cost optimization), Stateful Nodes, EMR Scaler, and cloud security posture through a unified REST interface. Supports Bearer Token authentication against the Spot platform API.
  version: '1.0'
  contact:
    email: support@spot.io
    url: https://docs.spot.io/
  termsOfService: https://spot.io/terms-of-service/
  x-logo:
    url: https://spec.dev.spot.io/flexera-spot.png
    altText: Spot by NetApp
servers:
- url: https://api.spotinst.io
  description: Production server
security:
- BearerAuth: []
tags:
- name: Elastigroup AWS
paths:
  /aws/ec2/group:
    get:
      operationId: listElastigroupsAWS
      summary: List Elastigroups AWS
      description: Retrieve all Elastigroup instances for the authenticated account on AWS.
      tags:
      - Elastigroup AWS
      parameters:
      - name: accountId
        in: query
        required: false
        description: Spot Account ID to filter by
        schema:
          type: string
      responses:
        '200':
          description: List of Elastigroups
          content:
            application/json:
              schema:
                type: object
                properties:
                  request:
                    type: object
                  response:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/ElastigroupAWS'
        '401':
          description: Unauthorized
    post:
      operationId: createElastigroupAWS
      summary: Create Elastigroup AWS
      description: Create a new Elastigroup for intelligent auto-scaling on AWS with Spot instances.
      tags:
      - Elastigroup AWS
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                group:
                  $ref: '#/components/schemas/ElastigroupAWS'
      responses:
        '200':
          description: Elastigroup created
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request
  /aws/ec2/group/{groupId}:
    get:
      operationId: getElastigroupAWS
      summary: Get Elastigroup AWS
      description: Retrieve a specific Elastigroup by ID.
      tags:
      - Elastigroup AWS
      parameters:
      - name: groupId
        in: path
        required: true
        description: Elastigroup identifier
        schema:
          type: string
      responses:
        '200':
          description: Elastigroup details
          content:
            application/json:
              schema:
                type: object
        '404':
          description: Not found
    put:
      operationId: updateElastigroupAWS
      summary: Update Elastigroup AWS
      description: Update an existing Elastigroup configuration.
      tags:
      - Elastigroup AWS
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Elastigroup updated
    delete:
      operationId: deleteElastigroupAWS
      summary: Delete Elastigroup AWS
      description: Delete an Elastigroup and all associated resources.
      tags:
      - Elastigroup AWS
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Elastigroup deleted
  /aws/ec2/group/{groupId}/scale/up:
    put:
      operationId: scaleUpElastigroupAWS
      summary: Scale Up Elastigroup AWS
      description: Scale up an Elastigroup by adding capacity.
      tags:
      - Elastigroup AWS
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
      - name: adjustment
        in: query
        required: true
        description: Number of instances to add
        schema:
          type: integer
      responses:
        '200':
          description: Scale up initiated
  /aws/ec2/group/{groupId}/scale/down:
    put:
      operationId: scaleDownElastigroupAWS
      summary: Scale Down Elastigroup AWS
      description: Scale down an Elastigroup by removing capacity.
      tags:
      - Elastigroup AWS
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
      - name: adjustment
        in: query
        required: true
        description: Number of instances to remove
        schema:
          type: integer
      responses:
        '200':
          description: Scale down initiated
  /aws/ec2/group/{groupId}/status:
    get:
      operationId: getElastigroupStatusAWS
      summary: Get Elastigroup Status AWS
      description: Retrieve the current status and instance details for an Elastigroup.
      tags:
      - Elastigroup AWS
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Elastigroup status
  /aws/ec2/group/{groupId}/costs:
    get:
      operationId: getElastigroupCostsAWS
      summary: Get Elastigroup Costs AWS
      description: Retrieve cost analysis and savings for an Elastigroup.
      tags:
      - Elastigroup AWS
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
      - name: toDate
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: fromDate
        in: query
        required: false
        schema:
          type: string
          format: date
      responses:
        '200':
          description: Cost data
components:
  schemas:
    ElastigroupAWS:
      type: object
      properties:
        id:
          type: string
          description: Elastigroup unique identifier
        name:
          type: string
          description: Group name
        description:
          type: string
        region:
          type: string
          description: AWS region
        capacity:
          type: object
          properties:
            minimum:
              type: integer
            maximum:
              type: integer
            target:
              type: integer
        compute:
          type: object
          properties:
            instanceTypes:
              type: object
              properties:
                ondemand:
                  type: string
                spot:
                  type: array
                  items:
                    type: string
        strategy:
          type: object
          properties:
            risk:
              type: integer
              description: Spot instance risk percentage (0-100)
            onDemandCount:
              type: integer
            availabilityVsCost:
              type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT