CAST AI Policies API

Manage autoscaler policies configuration for clusters, including unscheduled pods, node downscaler, and spot instance policies.

OpenAPI Specification

cast-ai-policies-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: CAST AI Kubernetes Cost Optimization AI Enabler Policies API
  description: CAST AI is a Kubernetes cost optimization platform that provides APIs for managing clusters, autoscaling, node configuration, workload optimization, cost reporting, security insights, and more. The platform continuously monitors clusters and optimizes them for cost efficiency using autoscaling, spot instance automation, bin packing, and other techniques.
  version: 1.0.0
  contact:
    name: CAST AI
    url: https://cast.ai
  termsOfService: https://cast.ai/terms-of-service
servers:
- url: https://api.cast.ai/v1
  description: CAST AI Production API
security:
- ApiKeyAuth: []
tags:
- name: Policies
  description: Manage autoscaler policies configuration for clusters, including unscheduled pods, node downscaler, and spot instance policies.
paths:
  /kubernetes/clusters/{clusterId}/policies:
    get:
      operationId: PoliciesAPI_GetClusterPolicies
      summary: CAST AI Get cluster policies
      description: Gets policies configuration for the target cluster.
      tags:
      - Policies
      parameters:
      - $ref: '#/components/parameters/ClusterId'
      responses:
        '200':
          description: Successful response with cluster policies.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterPolicies'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: PoliciesAPI_UpsertClusterPolicies
      summary: CAST AI Upsert cluster policies
      description: Upsert cluster's policies configuration.
      tags:
      - Policies
      parameters:
      - $ref: '#/components/parameters/ClusterId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClusterPolicies'
      responses:
        '200':
          description: Policies updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterPolicies'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    Unauthorized:
      description: Authentication failed. Invalid or missing API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    ClusterId:
      name: clusterId
      in: path
      required: true
      description: The unique identifier of the cluster.
      schema:
        type: string
        format: uuid
  schemas:
    Error:
      type: object
      properties:
        message:
          type: string
          description: Human-readable error message.
        code:
          type: integer
          description: Error code.
    ClusterPolicies:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether autoscaler policies are enabled.
        unschedulablePods:
          type: object
          properties:
            enabled:
              type: boolean
        nodeDownscaler:
          type: object
          properties:
            enabled:
              type: boolean
            emptyNodes:
              type: object
              properties:
                enabled:
                  type: boolean
                delaySeconds:
                  type: integer
        spotInstances:
          type: object
          properties:
            enabled:
              type: boolean
            maxReclaimRate:
              type: number
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key for authentication. Create access keys from the CAST AI console under API > API access keys.
externalDocs:
  description: CAST AI API Documentation
  url: https://docs.cast.ai/docs/api