WarpStream Virtual Clusters API

Manage Kafka-compatible virtual clusters

OpenAPI Specification

warpstream-virtual-clusters-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: WarpStream Management ACLs Virtual Clusters API
  description: 'REST API for programmatically managing all aspects of the WarpStream control plane, including workspaces, virtual clusters, topics, ACLs, pipelines, agent pools, and BYOC deployments. All requests are issued as POST or GET requests with JSON payloads and authenticated via the warpstream-api-key header using Application Keys, Agent Keys, or Account Keys depending on the scope of resources being managed.

    '
  version: 1.0.0
  contact:
    url: https://docs.warpstream.com/warpstream/reference/api-reference
  license:
    name: WarpStream Terms of Service
    url: https://www.warpstream.com/terms-of-service
servers:
- url: https://api.warpstream.com
  description: WarpStream Management API
security:
- ApiKeyAuth: []
tags:
- name: Virtual Clusters
  description: Manage Kafka-compatible virtual clusters
paths:
  /api/v1/list_virtual_clusters:
    get:
      operationId: listVirtualClusters
      summary: List Virtual Clusters
      description: Returns all virtual clusters in the authenticated workspace.
      tags:
      - Virtual Clusters
      responses:
        '200':
          description: List of virtual clusters
          content:
            application/json:
              schema:
                type: object
                properties:
                  virtual_clusters:
                    type: array
                    items:
                      $ref: '#/components/schemas/VirtualCluster'
  /api/v1/create_virtual_cluster:
    post:
      operationId: createVirtualCluster
      summary: Create Virtual Cluster
      description: 'Creates a new virtual cluster. A new agent key is automatically created with every new virtual cluster.

        '
      tags:
      - Virtual Clusters
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - virtual_cluster_name
              - virtual_cluster_type
              - virtual_cluster_region
              - virtual_cluster_cloud_provider
              - virtual_cluster_tier
              properties:
                virtual_cluster_name:
                  type: string
                  description: Name for the cluster
                virtual_cluster_type:
                  type: string
                  enum:
                  - byoc
                  - byoc_data_lake
                  - byoc_schema_registry
                  description: Type of virtual cluster
                virtual_cluster_region:
                  type: string
                  description: Cloud region (e.g., us-east-1)
                virtual_cluster_cloud_provider:
                  type: string
                  description: Cloud provider (e.g., aws, gcp, azure)
                virtual_cluster_tier:
                  type: string
                  description: Cluster tier (e.g., dev, prod)
            example:
              virtual_cluster_name: my-cluster
              virtual_cluster_type: byoc
              virtual_cluster_region: us-east-1
              virtual_cluster_cloud_provider: aws
              virtual_cluster_tier: dev
      responses:
        '200':
          description: Created virtual cluster details
          content:
            application/json:
              schema:
                type: object
                properties:
                  virtual_cluster_id:
                    type: string
                  virtual_cluster_name:
                    type: string
                  agent_pool_id:
                    type: string
                  agent_pool_name:
                    type: string
                  agent_key:
                    $ref: '#/components/schemas/ApiKey'
                  bootstrap_url:
                    type: string
  /api/v1/delete_virtual_cluster:
    post:
      operationId: deleteVirtualCluster
      summary: Delete Virtual Cluster
      description: 'Permanently deletes a virtual cluster and all its data. Both virtual_cluster_id and virtual_cluster_name are required as a confirmation safeguard. This operation cannot be undone.

        '
      tags:
      - Virtual Clusters
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - virtual_cluster_id
              - virtual_cluster_name
              properties:
                virtual_cluster_id:
                  type: string
                  description: ID of the cluster to delete
                virtual_cluster_name:
                  type: string
                  description: Name of the cluster (confirmation safeguard)
            example:
              virtual_cluster_id: vci_1d4930d7_8e6d_4ad9_b27a_654ed4aaa3ee
              virtual_cluster_name: my-cluster
      responses:
        '200':
          description: Deletion successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
components:
  schemas:
    ApiKey:
      type: object
      properties:
        id:
          type: string
          description: API key identifier
        name:
          type: string
          description: Human-readable key name (prefixed with akn_)
        key:
          type: string
          description: The actual secret key value
        created_at:
          type: string
          format: date-time
          description: ISO 8601 creation timestamp
        access_grants:
          type: array
          items:
            $ref: '#/components/schemas/AccessGrant'
    EmptyResponse:
      type: object
      description: Empty JSON object indicating success
      additionalProperties: false
    VirtualCluster:
      type: object
      properties:
        id:
          type: string
          description: Unique cluster identifier
        agent_pool_id:
          type: string
          description: Associated agent pool ID
        agent_pool_name:
          type: string
          description: Agent pool display name
        name:
          type: string
          description: Cluster name
        created_at:
          type: string
          format: date-time
          description: ISO 8601 creation timestamp
        type:
          type: string
          enum:
          - byoc
          - byoc_data_lake
          - byoc_schema_registry
          description: Cluster type
        region:
          type: string
          description: Cloud region (e.g., us-east-1)
        cloud_provider:
          type: string
          description: Cloud provider (e.g., aws, gcp, azure)
        bootstrap_url:
          type: string
          description: Kafka bootstrap connection endpoint
        agent_keys:
          type: array
          items:
            $ref: '#/components/schemas/ApiKey'
    AccessGrant:
      type: object
      description: Permission grant for an API key
      properties:
        principal_kind:
          type: string
          enum:
          - application
          - agent
          description: Type of principal
        resource_kind:
          type: string
          enum:
          - '*'
          - virtual_cluster
          description: Kind of resource the grant applies to
        resource_id:
          type: string
          description: Specific resource ID or '*' for all resources
        workspace_id:
          type: string
          description: Workspace ID, required when using an account key
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: warpstream-api-key
      description: 'WarpStream API key. Three key types are supported: Application Keys (manage workspace-specific resources), Agent Keys (scoped to a specific virtual cluster), and Account Keys (manage account-level resources such as workspaces and users).

        '
externalDocs:
  description: WarpStream API Reference Documentation
  url: https://docs.warpstream.com/warpstream/reference/api-reference