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