Zededa ZKSClusterInstances API

APIs for managing ZKS (ZEDEDA Kubernetes Service) cluster instances including creation, management, node operations, and status monitoring

Operations 17

GET /v1/zks/instances List all ZKS instances #
POST /v1/zks/instances Create a new ZKS instance #
PUT /v1/zks/instances Bulk update ZKS instances #
PUT /v1/zks/instances/id/{id} Update ZKS instance #
GET /v1/zks/instances/id/{zksId} Get ZKS instance by ID #
DELETE /v1/zks/instances/id/{zksId} Delete ZKS instance #
GET /v1/zks/instances/id/{zksId}/metrics Get ZKS instance metrics by ID #
PUT /v1/zks/instances/id/{zksId}/nodes Update ZKS instance nodes #
GET /v1/zks/instances/id/{zksId}/registration-commands Get registration commands by ID #
PUT /v1/zks/instances/id/{zksId}/upgrade Upgrade ZKS instance #
POST /v1/zks/instances/import Import an existing ZKS instance #
PUT /v1/zks/instances/k3s-upgrade Bulk upgrade K3s version #
GET /v1/zks/instances/k3s-versions Get available K3s versions #
GET /v1/zks/instances/name/{zksName} Get ZKS instance by name #
GET /v1/zks/instances/name/{zksName}/metrics Get ZKS instance metrics by name #
GET /v1/zks/instances/name/{zksName}/registration-commands Get registration commands by name #
GET /v1/zks/instances/status Get ZKS instances status #

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/zededa-zksclusterinstances-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

zededa-zksclusterinstances-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ZEDEDA App Profiles Service AppProfileService ZKS Cluster Instances API
  description: The ZEDEDA App Profiles Service is part of ZEDEDA Edge Orchestration Platform. This service enables customers to define their app profiles on ZEDEDA platform and to manage them remotely.
  termsOfService: https://www.zededa.com/terms
  version: '1.0'
  contact:
    name: ZEDEDA API Support
    url: https://www.zededa.com/support
    email: support@zededa.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: /api
security:
- BearerToken: []
tags:
- name: ZKSClusterInstances
  description: APIs for managing ZKS (ZEDEDA Kubernetes Service) cluster instances including creation, management, node operations, and status monitoring
paths:
  /v1/zks/instances:
    get:
      summary: List all ZKS instances
      description: "Retrieve a list of all ZKS instances with their basic information and metadata.\n\n**Query Parameters:**\n- Pagination parameters supported via cursor\n\n**Example Request:**\n```\nGET /v1/zks/instances\n```\n\n**Example Response:**\n```json\n{\n  \"list\": [\n    {\n      \"id\": \"zks-instance-abc123\",\n      \"projectId\": \"project-123\",\n      \"name\": \"production-cluster\",\n      \"title\": \"Production Kubernetes Cluster\",\n      \"description\": \"Main production cluster for edge applications\",\n      \"tags\": {\n        \"environment\": \"production\",\n        \"region\": \"us-west\"\n      },\n      \"nOfNodes\": 3\n    },\n    {\n      \"id\": \"zks-instance-def456\",\n      \"projectId\": \"project-456\",\n      \"name\": \"development-cluster\",\n      \"title\": \"Development Kubernetes Cluster\",\n      \"description\": \"Development cluster for testing\",\n      \"tags\": {\n        \"environment\": \"development\",\n        \"region\": \"us-east\"\n      },\n      \"nOfNodes\": 1\n    }\n  ],\n  \"next\": {\n    \"pageToken\": \"next-page-token\"\n  }\n}\n```"
      operationId: ZKSClusterInstances_ListZKSInstances
      responses:
        '200':
          description: Successfully retrieved ZKS instances list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZksInstancesList'
        '400':
          description: Bad Request. The API gateway did not process the request because of invalid value of filter parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to list ZKS instances.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to retrieve ZKS instances list due to server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      tags:
      - ZKSClusterInstances
      parameters:
      - name: X-Request-Id
        in: header
        required: false
        description: User-Agent specified id to track a request
        schema:
          type: string
    post:
      summary: Create a new ZKS instance
      description: "Create a new ZKS (ZEDEDA Kubernetes Service) cluster instance with specified nodes and configuration.\n\n**Example Request:**\n```json\n{\n  \"projectId\": \"project-123\",\n  \"name\": \"production-cluster\",\n  \"title\": \"Production Kubernetes Cluster\",\n  \"description\": \"Main production cluster for edge applications\",\n  \"tags\": {\n    \"environment\": \"production\",\n    \"region\": \"us-west\",\n    \"purpose\": \"edge-computing\"\n  },\n  \"nodes\": [\n    {\n      \"id\": \"node-001\",\n      \"clusterInterface\": \"eth0\"\n    },\n    {\n      \"id\": \"node-002\",\n      \"clusterInterface\": \"eth0\"\n    }\n  ],\n  \"isImported\": false\n}\n```\n\n**Example Response:**\n```json\n{\n  \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n  \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n  \"objectKind\": \"\",\n  \"objectId\": \"zks-instance-abc123\",\n  \"objectName\": \"production-cluster\",\n  \"objectRevision\": \"\",\n  \"objectType\": \"OBJECT_TYPE_UNSPECIFIED\",\n  \"operationTime\": \"\",\n  \"startTime\": \"\",\n  \"endTime\": \"\",\n  \"user\": \"\",\n  \"httpStatusCode\": 201,\n  \"httpStatusMsg\": \"\",\n  \"jobId\": \"\",\n  \"error\": [\n    {\n      \"ec\": \"zMsgSucess\",\n      \"location\": \"\",\n      \"details\": \"\"\n    }\n  ]\n}\n```"
      operationId: ZKSClusterInstances_CreateZKSInstance
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '201':
          description: Successfully created ZKS instance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '400':
          description: Bad Request. Invalid ZKS instance configuration or missing required fields.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to create ZKS instances.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '409':
          description: Conflict. ZKS instance with the same name already exists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to create ZKS instance due to server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: X-Request-Id
        in: header
        required: false
        description: User-Agent specified id to track a request
        schema:
          type: string
      tags:
      - ZKSClusterInstances
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ZksInstance'
        required: true
    put:
      summary: Bulk update ZKS instances
      description: "Update multiple ZKS instances at once with new tags or other common properties. This operation is useful for applying changes to multiple clusters simultaneously.\n\n**Example Request:**\n```json\n{\n  \"ids\": [\n    \"zks-instance-abc123\",\n    \"zks-instance-def456\",\n    \"zks-instance-ghi789\"\n  ],\n  \"data\": {\n    \"tags\": {\n      \"environment\": \"production\",\n      \"version\": \"v2\",\n      \"managed-by\": \"platform-team\"\n    }\n  }\n}\n```\n\n**Example Response:**\n```json\n{\n  \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n  \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n  \"objectKind\": \"\",\n  \"objectId\": \"\",\n  \"objectName\": \"\",\n  \"objectRevision\": \"\",\n  \"objectType\": \"OBJECT_TYPE_UNSPECIFIED\",\n  \"operationTime\": \"\",\n  \"startTime\": \"\",\n  \"endTime\": \"\",\n  \"user\": \"\",\n  \"httpStatusCode\": 200,\n  \"httpStatusMsg\": \"\",\n  \"jobId\": \"\",\n  \"error\": [\n    {\n      \"ec\": \"zMsgSucess\",\n      \"location\": \"\",\n      \"details\": \"Successfully updated 3 ZKS instances\"\n    }\n  ]\n}\n```"
      operationId: ZKSClusterInstances_BulkUpdateZKSInstances
      responses:
        '200':
          description: Successfully updated ZKS instances
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '400':
          description: Bad Request. Invalid bulk update configuration or empty instance IDs list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to update ZKS instances.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '404':
          description: Not Found. One or more ZKS instances with the specified IDs do not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to update ZKS instances due to server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: X-Request-Id
        in: header
        required: false
        description: User-Agent specified id to track a request
        schema:
          type: string
      tags:
      - ZKSClusterInstances
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ZksInstanceBulkUpdate'
        required: true
  /v1/zks/instances/id/{id}:
    put:
      summary: Update ZKS instance
      description: "Update an existing ZKS instance configuration including name, title, description, and tags.\n\n**Example Request:**\n```json\n{\n  \"id\": \"zks-instance-abc123\",\n  \"projectId\": \"project-123\",\n  \"name\": \"production-cluster\",\n  \"title\": \"Updated Production Kubernetes Cluster\",\n  \"description\": \"Updated main production cluster for edge applications\",\n  \"tags\": {\n    \"environment\": \"production\",\n    \"region\": \"us-west\",\n    \"version\": \"v2\"\n  },\n  \"nodes\": [\n    {\n      \"id\": \"node-001\",\n      \"clusterInterface\": \"eth0\"\n    },\n    {\n      \"id\": \"node-002\",\n      \"clusterInterface\": \"eth0\"\n    }\n  ],\n  \"isImported\": false\n}\n```\n\n**Example Response:**\n```json\n{\n  \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n  \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n  \"objectKind\": \"\",\n  \"objectId\": \"zks-instance-abc123\",\n  \"objectName\": \"production-cluster\",\n  \"objectRevision\": \"\",\n  \"objectType\": \"OBJECT_TYPE_UNSPECIFIED\",\n  \"operationTime\": \"\",\n  \"startTime\": \"\",\n  \"endTime\": \"\",\n  \"user\": \"\",\n  \"httpStatusCode\": 200,\n  \"httpStatusMsg\": \"\",\n  \"jobId\": \"\",\n  \"error\": [\n    {\n      \"ec\": \"zMsgSucess\",\n      \"location\": \"\",\n      \"details\": \"\"\n    }\n  ]\n}\n```"
      operationId: ZKSClusterInstances_UpdateZKSInstance
      responses:
        '200':
          description: Successfully updated ZKS instance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '400':
          description: Bad Request. Invalid ZKS instance configuration or missing required fields.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to update this ZKS instance.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '404':
          description: Not Found. ZKS instance with the specified ID does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '409':
          description: Conflict. Update conflicts with current instance state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to update ZKS instance due to server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: id
        description: System defined universally unique Id of the zks instance
        in: path
        required: true
        schema:
          type: string
      - name: X-Request-Id
        in: header
        required: false
        description: User-Agent specified id to track a request
        schema:
          type: string
      tags:
      - ZKSClusterInstances
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                projectId:
                  type: string
                  description: Foreign key to the project
                  pattern: '[0-9A-Za-z-]+'
                name:
                  type: string
                  description: User defined name of the zks instance, unique across the enterprise. Once zks instance is created, name can’t be changed
                title:
                  type: string
                  description: User defined title of the zks instance. Title can be changed at any time
                description:
                  type: string
                  description: Detailed description of the zks instance
                tags:
                  type: object
                  additionalProperties:
                    type: string
                  description: Tags are name/value pairs that enable you to categorize resources. Tag names are case insensitive with max_length 512 and min_length 3. Tag values are case sensitive with max_length 256 and min_length 3.
                  maxLength: 32
                  pattern: ^[^<%&?/\>]+$
                nodes:
                  type: array
                  items:
                    $ref: '#/components/schemas/ZksInstanceNode'
                  description: A list of nodes in the zks instance
                isImported:
                  type: boolean
                  description: Indicates if the ZKS instance is imported from an external source
                clusterPrefix:
                  type: string
                  description: Cluster prefix for the ZKS instance
              description: ZKS Instance details
              title: ZKS Instance details
              required:
              - projectId
              - name
              - nodes
        required: true
  /v1/zks/instances/id/{zksId}:
    get:
      summary: Get ZKS instance by ID
      description: "Retrieve detailed information about a specific ZKS instance including its configuration, nodes, and metadata.\n\n**Example Request:**\n```\nGET /v1/zks/instances/id/zks-instance-abc123\n```\n\n**Example Response:**\n```json\n{\n  \"id\": \"zks-instance-abc123\",\n  \"projectId\": \"project-123\",\n  \"name\": \"production-cluster\",\n  \"title\": \"Production Kubernetes Cluster\",\n  \"description\": \"Main production cluster for edge applications\",\n  \"tags\": {\n    \"environment\": \"production\",\n    \"region\": \"us-west\",\n    \"purpose\": \"edge-computing\"\n  },\n  \"nodes\": [\n    {\n      \"id\": \"node-001\",\n      \"clusterInterface\": \"eth0\"\n    },\n    {\n      \"id\": \"node-002\",\n      \"clusterInterface\": \"eth0\"\n    }\n  ],\n  \"isImported\": false\n}\n```"
      operationId: ZKSClusterInstances_GetZKSInstance
      responses:
        '200':
          description: Successfully retrieved ZKS instance information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZksInstance'
        '400':
          description: Bad Request. Invalid ZKS instance ID format.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to view this ZKS instance.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '404':
          description: Not Found. ZKS instance with the specified ID does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to retrieve ZKS instance due to server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: zksId
        description: Unique identifier of the ZKS instance. This field is required and must be a valid ZKS instance ID.
        in: path
        required: true
        schema:
          type: string
      - name: X-Request-Id
        in: header
        required: false
        description: User-Agent specified id to track a request
        schema:
          type: string
      tags:
      - ZKSClusterInstances
    delete:
      summary: Delete ZKS instance
      description: "Delete a ZKS instance and all its associated resources. This operation is irreversible and will terminate all running workloads.\n\n**Example Request:**\n```\nDELETE /v1/zks/instances/id/zks-instance-abc123\n```\n\n**Example Response:**\n```json\n{\n  \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n  \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n  \"objectKind\": \"\",\n  \"objectId\": \"zks-instance-abc123\",\n  \"objectName\": \"production-cluster\",\n  \"objectRevision\": \"\",\n  \"objectType\": \"OBJECT_TYPE_UNSPECIFIED\",\n  \"operationTime\": \"\",\n  \"startTime\": \"\",\n  \"endTime\": \"\",\n  \"user\": \"\",\n  \"httpStatusCode\": 200,\n  \"httpStatusMsg\": \"\",\n  \"jobId\": \"\",\n  \"error\": [\n    {\n      \"ec\": \"zMsgSucess\",\n      \"location\": \"\",\n      \"details\": \"\"\n    }\n  ]\n}\n```\n\n**Warning:** This operation will permanently delete the ZKS instance and all its data. Ensure all important data is backed up before deletion."
      operationId: ZKSClusterInstances_DeleteZKSInstance
      responses:
        '200':
          description: Successfully deleted ZKS instance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '400':
          description: Bad Request. Invalid ZKS instance ID format.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to delete this ZKS instance.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '404':
          description: Not Found. ZKS instance with the specified ID does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '409':
          description: Conflict. Cannot delete ZKS instance due to active workloads or dependencies.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to delete ZKS instance due to server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: zksId
        description: Unique identifier of the ZKS instance. This field is required and must be a valid ZKS instance ID.
        in: path
        required: true
        schema:
          type: string
      - name: X-Request-Id
        in: header
        required: false
        description: User-Agent specified id to track a request
        schema:
          type: string
      tags:
      - ZKSClusterInstances
  /v1/zks/instances/id/{zksId}/metrics:
    get:
      summary: Get ZKS instance metrics by ID
      description: "Retrieve detailed metrics for a specific ZKS instance including resource utilization and capacity information.\n\n**Example Request:**\n```\nGET /v1/zks/instances/id/zks-instance-abc123/metrics\n```\n\n**Example Response:**\n```json\n{\n  \"id\": \"zks-instance-abc123\",\n  \"name\": \"production-cluster\",\n  \"provider\": \"k3s\",\n  \"kubeVersion\": \"v1.28.2+k3s1\",\n  \"architecture\": \"amd64\",\n  \"created\": \"2024-01-15T10:00:00Z\",\n  \"totalResources\": 100,\n  \"nOfNodes\": 3,\n  \"deployments\": 15,\n  \"capacity\": {\n    \"pods\": {\n      \"used\": 25,\n      \"total\": 110\n    },\n    \"cpus\": {\n      \"reserved\": {\n        \"current\": 2.5,\n        \"total\": 8.0\n      },\n      \"used\": {\n        \"current\": 1.8,\n        \"total\": 8.0\n      }\n    },\n    \"memory\": {\n      \"reserved\": {\n        \"current\": 4.0,\n        \"total\": 16.0\n      },\n      \"used\": {\n        \"current\": 3.2,\n        \"total\": 16.0\n      }\n    }\n  }\n}\n```"
      operationId: ZKSClusterInstances_GetZKSInstanceMetrics
      responses:
        '200':
          description: Successfully retrieved ZKS instance metrics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZksInstanceMetrics'
        '400':
          description: Bad Request. Invalid ZKS instance ID format.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to view metrics for this ZKS instance.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '404':
          description: Not Found. ZKS instance with the specified ID does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to retrieve metrics due to server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: zksId
        description: Unique identifier of the ZKS instance. This field is required and must be a valid ZKS instance ID.
        in: path
        required: true
        schema:
          type: string
      - name: X-Request-Id
        in: header
        required: false
        description: User-Agent specified id to track a request
        schema:
          type: string
      tags:
      - ZKSClusterInstances
  /v1/zks/instances/id/{zksId}/nodes:
    put:
      summary: Update ZKS instance nodes
      description: "Add or remove nodes from a ZKS instance. This operation allows scaling the cluster up or down by managing individual nodes.\n\n**Example Request (Add Nodes):**\n```json\n{\n  \"action\": \"NODE_ACTION_ADD_NODES\",\n  \"nodes\": [\n    {\n      \"id\": \"node-003\",\n      \"clusterInterface\": \"eth0\"\n    },\n    {\n      \"id\": \"node-004\",\n      \"clusterInterface\": \"eth0\"\n    }\n  ]\n}\n```\n\n**Example Request (Remove Nodes):**\n```json\n{\n  \"action\": \"NODE_ACTION_REMOVE_NODES\",\n  \"nodes\": [\n    {\n      \"id\": \"node-002\",\n      \"clusterInterface\": \"eth0\"\n    }\n  ]\n}\n```\n\n**Example Response:**\n```json\n{\n  \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n  \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n  \"objectKind\": \"\",\n  \"objectId\": \"zks-instance-abc123\",\n  \"objectName\": \"production-cluster\",\n  \"objectRevision\": \"\",\n  \"objectType\": \"OBJECT_TYPE_UNSPECIFIED\",\n  \"operationTime\": \"\",\n  \"startTime\": \"\",\n  \"endTime\": \"\",\n  \"user\": \"\",\n  \"httpStatusCode\": 200,\n  \"httpStatusMsg\": \"\",\n  \"jobId\": \"\",\n  \"error\": [\n    {\n      \"ec\": \"zMsgSucess\",\n      \"location\": \"\",\n      \"details\": \"\"\n    }\n  ]\n}\n```"
      operationId: ZKSClusterInstances_UpdateZKSInstanceNodes
      responses:
        '200':
          description: Successfully updated ZKS instance nodes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '400':
          description: Bad Request. Invalid node update configuration or missing required fields.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to update this ZKS instance.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '404':
          description: Not Found. ZKS instance with the specified ID does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '409':
          description: Conflict. Cannot update nodes due to cluster state or resource constraints.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to update nodes due to server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: zksId
        description: ZKS instance ID for the node update operation
        in: path
        required: true
        schema:
          type: string
      - name: X-Request-Id
        in: header
        required: false
        description: User-Agent specified id to track a request
        schema:
          type: string
      tags:
      - ZKSClusterInstances
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                action:
                  $ref: '#/components/schemas/NodeAction'
                  description: Action to be performed on the nodes
                nodes:
                  type: array
                  items:
                    $ref: '#/components/schemas/ZksInstanceNode'
                  description: List of nodes to be added or removed
              title: ZksNodeUpdate for node update operations
        required: true
  /v1/zks/instances/id/{zksId}/registration-commands:
    get:
      summary: Get registration commands by ID
      description: "Retrieve registration commands for adding nodes to a ZKS instance. These commands can be executed on edge devices to join them to the cluster.\n\n**Example Request:**\n```\nGET /v1/zks/instances/id/zks-instance-abc123/registration-commands\n```\n\n**Example Response:**\n```json\n{\n  \"created\": \"2024-01-15T10:30:00Z\",\n  \"manifestUrl\": \"https://api.zededa.com/manifests/zks-instance-abc123\",\n  \"commands\": {\n    \"command\": \"curl -sfL https://get.k3s.io | K3S_URL=https://cluster.example.com:6443 K3S_TOKEN=K1234567890abcdef::server:1234567890abcdef sh -\",\n    \"insecureCommand\": \"curl -sfL https://get.k3s.io | K3S_URL=https://cluster.example.com:6443 K3S_TOKEN=K1234567890abcdef::server:1234567890abcdef INSTALL_K3S_SKIP_VERIFY=true sh -\",\n    \"nodeCommand\": \"curl -sfL https://get.k3s.io | K3S_URL=https://cluster.example.com:6443 K3S_TOKEN=K1234567890abcdef::server:1234567890abcdef sh -s - agent\",\n    \"windowsNodeCommand\": \"Invoke-WebRequest -Uri https://github.com/k3s-io/k3s/releases/download/v1.28.2%2Bk3s1/k3s-windows-amd64.exe -OutFile k3s.exe\"\n  }\n}\n```"
      operationId: ZKSClusterInstances_GetZKSInstanceRegistrationCommands
      responses:
        '200':
          description: Successfully retrieved registration commands
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZksInstanceRegistrationInfo'
        '400':
          description: Bad Request. Invalid ZKS instance ID format.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to view registration commands.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '404':
          description: Not Found. ZKS instance with the specified ID does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to retrieve registration commands due to server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        default:
          description: An unexpected error response.
          conten

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