Replicated clusters API

The clusters API from Replicated — 18 operation(s) for clusters.

Operations 19

GET /app/{app_id}/cluster-usage List cluster usage. #
POST /cluster Create a test cluster. #
GET /cluster/filters Get clusters filters. #
GET /cluster/quotas List cluster quotas. #
GET /cluster/stats Get clusters stats. #
GET /cluster/versions List cluster versions. #
GET /cluster/{cluster_id} Get the details for a test cluster. #
DELETE /cluster/{cluster_id} Delete a test cluster. #
GET /cluster/{cluster_id}/kubeconfig Get the kubeconfig for a test cluster. #
PUT /cluster/{cluster_id}/nodegroup/{nodegroup_id} Update a nodegroup for a cluster. #
POST /cluster/{cluster_id}/port Exposes a port on a cluster. #
DELETE /cluster/{cluster_id}/port/{port_number} Deletes a port from a cluster. #
GET /cluster/{cluster_id}/ports Lists ports for a cluster. #
PUT /cluster/{cluster_id}/tags Update the tags for a cluster. #
PUT /cluster/{cluster_id}/ttl Update ttl for a cluster. #
POST /cluster/{cluster_id}/upgrade Upgrade a test cluster. #
GET /clusters List test clusters. #
POST /cmx/credits/buy Add credits to a team. #
POST /cmx/quotas/increase Send a request to increase cluster quota. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/replicated-clusters-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

replicated-clusters-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Manage enterprise portal users, install options, branding, documentation, email templates, and access control.
  title: Vendor API V3 apps Clusters API
  contact:
    name: Replicated, Inc.
    url: http://www.replicated.com/
    email: info@replicated.com
  version: 3.0.0
servers:
- url: https://api.replicated.com/vendor/v3
tags:
- name: clusters
paths:
  /app/{app_id}/cluster-usage:
    get:
      security:
      - api_key: []
      description: 'List cluster distribution/version usage by customers.


        Required RBAC Policy: kots/app/[:appid]/license/[:licenseid]/read'
      tags:
      - clusters
      summary: List cluster usage.
      operationId: listClusterUsage
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/listClusterUsageResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /cluster:
    post:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/cluster/create'
      tags:
      - clusters
      summary: Create a test cluster.
      operationId: createCluster
      parameters:
      - name: DryRun
        in: query
        schema:
          type: boolean
      responses:
        '200':
          $ref: '#/components/responses/createClusterDryRunResponse'
        '201':
          $ref: '#/components/responses/createClusterResponse'
        '400':
          $ref: '#/components/responses/createClusterErrorResponse'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateClusterParametersBody'
  /cluster/filters:
    get:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/cluster/list'
      tags:
      - clusters
      summary: Get clusters filters.
      operationId: getClusterFilters
      responses:
        '200':
          $ref: '#/components/responses/getClusterFiltersResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /cluster/quotas:
    get:
      security:
      - api_key: []
      tags:
      - clusters
      summary: List cluster quotas.
      operationId: listClusterQuotas
      responses:
        '200':
          $ref: '#/components/responses/listClusterQuotasResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /cluster/stats:
    get:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/cluster/list'
      tags:
      - clusters
      summary: Get clusters stats.
      operationId: getClusterStats
      responses:
        '200':
          $ref: '#/components/responses/getClusterStatsResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /cluster/versions:
    get:
      security:
      - api_key: []
      tags:
      - clusters
      summary: List cluster versions.
      operationId: listClusterVersions
      responses:
        '200':
          $ref: '#/components/responses/listClusterVersionsResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /cluster/{cluster_id}:
    get:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/cluster/[:clusterid]'
      tags:
      - clusters
      summary: Get the details for a test cluster.
      operationId: getCluster
      parameters:
      - x-go-name: ClusterID
        description: Cluster identifier
        name: cluster_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/getClusterResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
    delete:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/cluster/[:clusterid]/delete'
      tags:
      - clusters
      summary: Delete a test cluster.
      operationId: deleteCluster
      parameters:
      - x-go-name: ClusterID
        description: Cluster identifier
        name: cluster_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/deleteClusterResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /cluster/{cluster_id}/kubeconfig:
    get:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/cluster/[:clusterid]/kubeconfig'
      tags:
      - clusters
      summary: Get the kubeconfig for a test cluster.
      operationId: getClusterKubeconfig
      parameters:
      - x-go-name: ClusterID
        description: Cluster identifier
        name: cluster_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/getClusterKubeconfigResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /cluster/{cluster_id}/nodegroup/{nodegroup_id}:
    put:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/cluster/[:clusterid]/nodegroup'
      tags:
      - clusters
      summary: Update a nodegroup for a cluster.
      operationId: updateClusterNodegroup
      parameters:
      - x-go-name: ClusterID
        description: Cluster identifier
        name: cluster_id
        in: path
        required: true
        schema:
          type: string
      - x-go-name: NodegroupID
        description: Nodegroup identifier
        name: nodegroup_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/updateClusterNodegroupResponse'
        '400':
          $ref: '#/components/responses/updateClusterNodegroupErrorResponse'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                count:
                  type: integer
                  format: int64
                  x-go-name: Count
                maxCount:
                  type: integer
                  format: int64
                  x-go-name: MaxCount
                minCount:
                  type: integer
                  format: int64
                  x-go-name: MinCount
  /cluster/{cluster_id}/port:
    post:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/cluster/[:clusterid]/port/expose'
      tags:
      - clusters
      summary: Exposes a port on a cluster.
      operationId: createClusterPort
      parameters:
      - x-go-name: ClusterID
        description: Cluster identifier
        name: cluster_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          $ref: '#/components/responses/createClusterPortResponse'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - port
              - protocols
              properties:
                is_wildcard:
                  description: IsWildcard
                  type: boolean
                  x-go-name: IsWildcard
                port:
                  description: Port Number
                  type: integer
                  format: int64
                  x-go-name: Port
                protocols:
                  description: Protocols
                  type: array
                  items:
                    $ref: '#/components/schemas/PortProtocol'
                  x-go-name: Protocols
  /cluster/{cluster_id}/port/{port_number}:
    delete:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/cluster/[:clusterid]/port/delete'
      tags:
      - clusters
      summary: Deletes a port from a cluster.
      operationId: deleteClusterPort
      parameters:
      - x-go-name: ClusterID
        description: Cluster identifier
        name: cluster_id
        in: path
        required: true
        schema:
          type: string
      - x-go-name: PortNumber
        description: Port Number
        name: port_number
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - x-go-name: Protocols
        description: Protocols
        name: protocols
        in: query
        required: true
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          $ref: '#/components/responses/deleteClusterPortResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /cluster/{cluster_id}/ports:
    get:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/cluster/[:clusterid]/port/list'
      tags:
      - clusters
      summary: Lists ports for a cluster.
      operationId: listClusterPorts
      parameters:
      - x-go-name: ClusterID
        description: Cluster identifier
        name: cluster_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/listClusterPortsResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /cluster/{cluster_id}/tags:
    put:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/cluster/tag/update'
      tags:
      - clusters
      summary: Update the tags for a cluster.
      operationId: updateClusterTags
      parameters:
      - x-go-name: ClusterID
        description: Cluster identifier
        name: cluster_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          $ref: '#/components/responses/updateClusterTagsResponse'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                tags:
                  type: array
                  items:
                    $ref: '#/components/schemas/Tag'
                  x-go-name: Tags
  /cluster/{cluster_id}/ttl:
    put:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/cluster/ttl/update'
      tags:
      - clusters
      summary: Update ttl for a cluster.
      operationId: updateClusterTTL
      parameters:
      - x-go-name: ClusterID
        description: Cluster identifier
        name: cluster_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/updateClusterTTLResponse'
        '400':
          $ref: '#/components/responses/updateClusterTTLErrorResponse'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                ttl:
                  type: string
                  x-go-name: TTL
  /cluster/{cluster_id}/upgrade:
    post:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/cluster/[:clusterid]/upgrade'
      tags:
      - clusters
      summary: Upgrade a test cluster.
      operationId: upgradeCluster
      parameters:
      - x-go-name: ClusterID
        description: Cluster identifier
        name: cluster_id
        in: path
        required: true
        schema:
          type: string
      - name: DryRun
        in: query
        schema:
          type: boolean
      responses:
        '200':
          $ref: '#/components/responses/upgradeClusterResponse'
        '400':
          $ref: '#/components/responses/upgradeClusterValidationErrorResponse'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                kubernetes_version:
                  type: string
                  x-go-name: KubernetesVersion
        required: true
  /clusters:
    get:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/cluster/list'
      tags:
      - clusters
      summary: List test clusters.
      operationId: listClusters
      parameters:
      - x-go-name: PageSize
        description: Page size
        name: pageSize
        in: query
        schema:
          type: integer
          format: int64
          default: 20
      - x-go-name: CurrentPage
        description: Current page
        name: currentPage
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: SortColumn
        description: Sort column
        name: sortColumn
        in: query
        schema:
          type: string
      - x-go-name: SortDesc
        description: Sort descending
        name: sortDesc
        in: query
        schema:
          type: boolean
      - x-go-name: ShowTerminated
        name: show-terminated
        in: query
        schema:
          type: boolean
      - x-go-name: StartTimeStr
        description: Specify a start time in the format "YYYY-MM-DDTHH:MM:SSZ".
        name: start-time
        in: query
        schema:
          type: string
      - x-go-name: EndTimeStr
        description: Specify an end time in the format "YYYY-MM-DDTHH:MM:SSZ".
        name: end-time
        in: query
        schema:
          type: string
      - x-go-name: ActorFilter
        description: Filter clusters by actor type or name, e.g. "user" or "Replicated CLI".
        name: actor-filter
        in: query
        schema:
          type: string
      - x-go-name: TagFilter
        description: Filter clusters by tag, e.g. "tag1=value1".
        name: tag-filter
        in: query
        schema:
          type: string
      - x-go-name: TagSortKey
        description: 'Sort clusters by a specific key, e.g. "terminated_at" would sort by

          termination time.'
        name: tag-sort-key
        in: query
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/listClustersResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /cmx/credits/buy:
    post:
      description: 'Start the process of adding credits to a team. This generally

        credits a stripe checkout session'
      tags:
      - clusters
      summary: Add credits to a team.
      operationId: addClusterCredits
      responses:
        '200':
          $ref: '#/components/responses/increaseClusterCreditsResponse'
        '400':
          $ref: '#/components/responses/increaseClusterCreditsErrorResponse'
        '500':
          $ref: '#/components/responses/increaseClusterCreditsErrorResponse'
  /cmx/quotas/increase:
    post:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/cluster/increase-quota'
      tags:
      - clusters
      summary: Send a request to increase cluster quota.
      operationId: increaseClusterQuota
      responses:
        '200':
          $ref: '#/components/responses/increaseClusterQuotaResponse'
        '400':
          $ref: '#/components/responses/increaseClusterQuotaErrorResponse'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                requests:
                  type: array
                  items:
                    $ref: '#/components/schemas/IncreaseQuotaRequest'
                  x-go-name: Requests
components:
  schemas:
    ClusterDetail:
      type: object
      properties:
        channel_id:
          type: string
          x-go-name: ChannelId
        channel_sequence:
          type: integer
          format: int64
          x-go-name: ChannelSequence
        cloud_provider:
          type: string
          x-go-name: CloudProvider
        is_airgap:
          type: boolean
          x-go-name: IsAirgap
        is_kurl:
          type: boolean
          x-go-name: IsKurl
        kots_version:
          type: string
          x-go-name: KotsVersion
        kubernetes_distribution:
          type: string
          x-go-name: KubernetesDistribution
        kubernetes_version:
          type: string
          x-go-name: KubernetesVersion
        number_of_instances:
          type: integer
          format: int64
          x-go-name: NumberOfInstances
        version_label:
          type: string
          x-go-name: VersionLabel
      x-go-package: github.com/replicatedhq/vandoor/pkg/vendor-api/cluster
    Cluster:
      type: object
      properties:
        actor:
          $ref: '#/components/schemas/Actor'
        addons:
          type: array
          items:
            $ref: '#/components/schemas/ClusterAddon'
          x-go-name: Addons
        assigned_at:
          type: string
          format: date-time
          x-go-name: AssignedAt
        cluster_node:
          $ref: '#/components/schemas/ClusterNode'
        created_at:
          type: string
          format: date-time
          x-go-name: CreatedAt
        credits_per_hour_per_cluster:
          type: integer
          format: int64
          x-go-name: CreditsPerHourPerCluster
        distribution:
          type: string
          x-go-name: Distribution
        expires_at:
          type: string
          format: date-time
          x-go-name: ExpiresAt
        flat_fee:
          type: integer
          format: int64
          x-go-name: FlatFee
        guid:
          type: string
          x-go-name: GUID
        id:
          type: string
          x-go-name: ShortID
        installer_url:
          type: string
          x-go-name: InstallerURL
        ip_family:
          type: string
          x-go-name: IPFamily
        kubernetes_distribution:
          type: string
          x-go-name: KubernetesDistribution
        kubernetes_version:
          type: string
          x-go-name: KubernetesVersion
        last_scheduling_status:
          type: string
          x-go-name: LastSchedulingStatus
        license_id:
          type: string
          x-go-name: LicenseID
        name:
          type: string
          x-go-name: Name
        network_id:
          type: string
          x-go-name: NetworkID
        node_groups:
          type: array
          items:
            $ref: '#/components/schemas/NodeGroup'
          x-go-name: NodeGroups
        running_at:
          type: string
          format: date-time
          x-go-name: RunningAt
        status:
          $ref: '#/components/schemas/ClusterStatus'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
          x-go-name: Tags
        team_id:
          type: string
          x-go-name: TeamID
        total_credits:
          type: integer
          format: int64
          x-go-name: TotalCredits
        ttl:
          type: string
          x-go-name: TTL
        version:
          type: string
          x-go-name: Version
      x-go-package: github.com/replicatedhq/vandoor/pkg/vendor-api/cluster/types
    SupportedVersion:
      type: object
      properties:
        nodes_max:
          type: integer
          format: int64
          x-go-name: NodesMax
        version:
          type: string
          x-go-name: Version
      x-go-package: github.com/replicatedhq/vandoor/pkg/vendor-api/cluster/types
    ClusterDistributionStatus:
      type: object
      properties:
        enabled:
          type: boolean
          x-go-name: Enabled
        status:
          type: string
          x-go-name: Status
        status_message:
          type: string
          x-go-name: StatusMessage
        versions:
          type: string
          x-go-name: Versions
      x-go-package: github.com/replicatedhq/vandoor/pkg/vendor-api/cluster/types
    ClusterAddonStatus:
      type: string
      x-go-package: github.com/replicatedhq/vandoor/pkg/vendor-api/cluster/types
    SupportedDistributionAndVersions:
      type: object
      properties:
        instance_types:
          type: array
          items:
            type: string
          x-go-name: InstanceTypes
        nodes_max:
          type: integer
          format: int64
          x-go-name: NodesMax
        short_name:
          type: string
          x-go-name: ShortName
        status:
          $ref: '#/components/schemas/ClusterDistributionStatus'
        version_details:
          type: array
          items:
            $ref: '#/components/schemas/SupportedVersion'
          x-go-name: VersionDetails
        versions:
          type: array
          items:
            type: string
          x-go-name: Versions
      x-go-package: github.com/replicatedhq/vandoor/pkg/vendor-api/cluster/types
    NodeType:
      type: string
      x-go-package: github.com/replicatedhq/vandoor/pkg/vendor-api/cluster/types
    NodeGroup:
      type: object
      properties:
        cluster_guid:
          type: string
          x-go-name: ClusterGUID
        created_at:
          type: string
          format: date-time
          x-go-name: CreatedAt
        credits_per_hour:
          type: integer
          format: int64
          x-go-name: CreditsPerHour
        disk_gib:
          type: integer
          format: int64
          x-go-name: DiskGiB
        id:
          type: string
          x-go-name: ID
        instance_type:
          type: string
          x-go-name: InstanceType
        is_default:
          type: boolean
          x-go-name: IsDefault
        max_node_count:
          type: integer
          format: int64
          x-go-name: MaxNodeCount
        min_node_count:
          type: integer
          format: int64
          x-go-name: MinNodeCount
        minutes_billed:
          type: integer
          format: int64
          x-go-name: MinutesBilled
        name:
          type: string
          x-go-name: Name
        node_count:
          type: integer
          format: int64
          x-go-name: NodeCount
        nodes:
          type: array
          items:
            $ref: '#/components/schemas/ClusterNode'
          x-go-name: ClusterNodes
        running_at:
          type: string
          format: date-time
          x-go-name: RunningAt
        total_credits:
          type: integer
          format: int64
          x-go-name: TotalCredits
      x-go-package: github.com/replicatedhq/vandoor/pkg/vendor-api/cluster/types
    ClusterAddonObjectStore:
      type: object
      properties:
        bucket_name:
          type: string
          x-go-name: BucketName
        bucket_prefix:
          type: string
          x-go-name: BucketPrefix
        service_account_name:
          type: string
          x-go-name: ServiceAccountName
        service_account_name_read_only:
          type: string
          x-go-name: ServiceAccountNameReadOnly
        service_account_namespace:
          type: string
          x-go-name: ServiceAccountNamespace
      x-go-package: github.com/replicatedhq/vandoor/pkg/vendor-api/cluster/types
    ClusterNode:
      type: object
      properties:
        join_command:
          type: string
          x-go-name: JoinCommand
        network_id:
          description: Used by vxlan nodes
          type: string
          x-go-name: NetworkID
        network_public_ips:
          type: array
          items:
            type: string
          x-go-name: NetworkPublicIPs
        node_group_id:
          type: string
          x-go-name: NodeGroupID
        node_index:
          type: integer
          format: int64
          x-go-name: Index
        node_type:
          $ref: '#/components/schemas/NodeType'
        ssh_endpoint:
          type: string
          x-go-name: SSHEndpoint
        ssh_key:
          type: string
          x-go-name: SSHKey
        ssh_port:
          type: integer
          format: int64
          x-go-name: SSHPort
      x-go-package: github.com/replicatedhq/vandoor/pkg/vendor-api/cluster/types
    CreateClusterError:
      type: object
      properties:
        maxAKS:
          type: integer
          format: int64
          x-go-name: MaxAKS
        maxDiskGiB:
          type: integer
          format: int64
          x-go-name: MaxDiskGiB
        maxEKS:
          type: integer
          format: int64
          x-go-name: MaxEKS
        maxGKE:
          type: integer
          format: int64
          x-go-name: MaxGKE
        maxMemoryGiB:
          type: integer
          format: int64
          x-go-name: MaxMemoryGiB
        maxOKE:
          type: integer
          format: int64
          x-go-name: MaxOKE
        maxVCPUs:
          type: integer
          format: int64
          x-go-name: MaxVCPUs
        message:
          type: string
          x-go-name: Message
        validationError:
          $ref: '#/components/schemas/ValidationError'
      x-go-package: github.com/replicatedhq/vandoor/handlers/vendor-api/replv3/cluster
    CreateClusterParametersBody:
      type: object
      properties:
        additional_node_groups:
          type: array
          items:
            $ref: '#/components/schemas/CreateNodeGroupParameters'
          x-go-name: AdditionalNodeGroups
        default_node_group:
          $ref: '#/components/schemas/CreateNodeGroupParameters'
        disk_gib:
          type: integer
          format: int64
          x-go-name: DiskGiB
        instance_type:
          description: 'following params are deprecated but remain to support cli versions <= 0.72.0

            this handler will construct everything into DefaultNodeGroup and AdditionalNodeGroups

            in the Bind method'
          type: string
          x-go-name: InstanceType
        ip_family:
          type: string
          x-go-name: IPFamily
        kubernetes_distribution:
          type: string
          x-go-name: KubernetesDistribution
        kubernetes_version:
          type: string
          x-go-name: KubernetesVersion
        license_id:
          type: string
          x-go-name: LicenseID
        max_node_count:
          type: integer
          format: int64
          x-go-name: MaxNodeCount
        min_node_count:
          type: integer
          format: int64
          x-go-name: MinNodeCount
        name:
          type: string
          x-go-name: Name
        network_policy:
          type: string
          x-go-name: NetworkPolicy
        node_count:
          type: integer
          format: int64
          x-go-name: NodeCount
        node_groups:
          type: array
          items:
            $ref: '#/components/schemas/CreateNodeGroupParameters'
          x-go-name: NodeGroups
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
          x-go-name: Tags
        ttl:
          type: string
          x-go-name: TTL
      x-go-package: github.com/replicatedhq/vandoor/handlers/vendor-api/replv3/cluster
    CreateNodeGroupParameters:
      type: object
      properties:
        disk_gib:
          type: integer
          format: int64
          x-go-name: DiskGiB
        instance_type:
          type: string
          x-go-name: InstanceType
        max_node_count:
          type: integer
          form

# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/replicated/refs/heads/main/openapi/replicated-clusters-api-openapi.yml