OptScale Cloud Accounts API

Cloud account connections (AWS, Azure, GCP, Alibaba, Kubernetes)

OpenAPI Specification

optscale-cloud-accounts-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: OptScale REST Authentication Cloud Accounts API
  description: OptScale is an open-source FinOps and cloud cost optimization platform by Hystax. The REST API exposes endpoints for managing organizations, cloud accounts, employees, pools, resources, expenses, recommendations, and optimization runs across AWS, Azure, GCP, Alibaba Cloud, and Kubernetes.
  version: '2.0'
  contact:
    name: Hystax OptScale
    url: https://hystax.com/optscale/
    email: info@hystax.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://{host}/restapi/v2
  description: OptScale REST API server
  variables:
    host:
      default: my.optscale.com
      description: OptScale hostname
security:
- bearerAuth: []
tags:
- name: Cloud Accounts
  description: Cloud account connections (AWS, Azure, GCP, Alibaba, Kubernetes)
paths:
  /organizations/{organization_id}/cloud_accounts:
    get:
      tags:
      - Cloud Accounts
      summary: List cloud accounts for an organization
      operationId: listCloudAccounts
      parameters:
      - $ref: '#/components/parameters/OrganizationId'
      responses:
        '200':
          description: Cloud accounts
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CloudAccount'
    post:
      tags:
      - Cloud Accounts
      summary: Create a cloud account connection
      operationId: createCloudAccount
      parameters:
      - $ref: '#/components/parameters/OrganizationId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloudAccount'
      responses:
        '201':
          description: Cloud account connected
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudAccount'
  /cloud_accounts/{cloud_account_id}:
    get:
      tags:
      - Cloud Accounts
      summary: Get cloud account
      operationId: getCloudAccount
      parameters:
      - $ref: '#/components/parameters/CloudAccountId'
      responses:
        '200':
          description: Cloud account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudAccount'
    delete:
      tags:
      - Cloud Accounts
      summary: Disconnect a cloud account
      operationId: deleteCloudAccount
      parameters:
      - $ref: '#/components/parameters/CloudAccountId'
      responses:
        '204':
          description: Cloud account disconnected
components:
  parameters:
    CloudAccountId:
      name: cloud_account_id
      in: path
      required: true
      schema:
        type: string
    OrganizationId:
      name: organization_id
      in: path
      required: true
      schema:
        type: string
  schemas:
    CloudAccount:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        type:
          type: string
          enum:
          - aws_cnr
          - azure_cnr
          - gcp_cnr
          - alibaba_cnr
          - kubernetes_cnr
        config:
          type: object
          additionalProperties: true
        organization_id:
          type: string
        last_import_at:
          type: integer
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
externalDocs:
  description: OptScale Documentation
  url: https://hystax.com/documentation/optscale/