{ "opencollection": "1.0.0", "info": { "name": "ZEDEDA App Profiles Service AppProfileService ZKSClusterInstances API", "version": "1.0" }, "items": [ { "info": { "name": "ZKSClusterInstances", "type": "folder" }, "items": [ { "info": { "name": "List all ZKS instances", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/zks/instances", "headers": [ { "name": "X-Request-Id", "value": "" } ] }, "docs": "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 \"e" }, { "info": { "name": "Create a new ZKS instance", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/v1/zks/instances", "headers": [ { "name": "X-Request-Id", "value": "" } ] }, "docs": "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 " }, { "info": { "name": "Bulk update ZKS instances", "type": "http" }, "http": { "method": "PUT", "url": "{{baseUrl}}/v1/zks/instances", "headers": [ { "name": "X-Request-Id", "value": "" } ] }, "docs": "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" }, { "info": { "name": "Update ZKS instance", "type": "http" }, "http": { "method": "PUT", "url": "{{baseUrl}}/v1/zks/instances/id/:id", "headers": [ { "name": "X-Request-Id", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path", "description": "System defined universally unique Id of the zks instance" } ] }, "docs": "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 \"clusterInter" }, { "info": { "name": "Get ZKS instance by ID", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/zks/instances/id/:zksId", "headers": [ { "name": "X-Request-Id", "value": "" } ], "params": [ { "name": "zksId", "value": "", "type": "path", "description": "Unique identifier of the ZKS instance. This field is required and must be a valid ZKS instance ID." } ] }, "docs": "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 \"purp" }, { "info": { "name": "Delete ZKS instance", "type": "http" }, "http": { "method": "DELETE", "url": "{{baseUrl}}/v1/zks/instances/id/:zksId", "headers": [ { "name": "X-Request-Id", "value": "" } ], "params": [ { "name": "zksId", "value": "", "type": "path", "description": "Unique identifier of the ZKS instance. This field is required and must be a valid ZKS instance ID." } ] }, "docs": "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 \"opera" }, { "info": { "name": "Get ZKS instance metrics by ID", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/zks/instances/id/:zksId/metrics", "headers": [ { "name": "X-Request-Id", "value": "" } ], "params": [ { "name": "zksId", "value": "", "type": "path", "description": "Unique identifier of the ZKS instance. This field is required and must be a valid ZKS instance ID." } ] }, "docs": "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\": {" }, { "info": { "name": "Update ZKS instance nodes", "type": "http" }, "http": { "method": "PUT", "url": "{{baseUrl}}/v1/zks/instances/id/:zksId/nodes", "headers": [ { "name": "X-Request-Id", "value": "" } ], "params": [ { "name": "zksId", "value": "", "type": "path", "description": "ZKS instance ID for the node update operation" } ] }, "docs": "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 " }, { "info": { "name": "Get registration commands by ID", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/zks/instances/id/:zksId/registration-commands", "headers": [ { "name": "X-Request-Id", "value": "" } ], "params": [ { "name": "zksId", "value": "", "type": "path", "description": "Unique identifier of the ZKS instance. This field is required and must be a valid ZKS instance ID." } ] }, "docs": "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=K12" }, { "info": { "name": "Upgrade ZKS instance", "type": "http" }, "http": { "method": "PUT", "url": "{{baseUrl}}/v1/zks/instances/id/:zksId/upgrade", "headers": [ { "name": "X-Request-Id", "value": "" } ], "params": [ { "name": "zksId", "value": "", "type": "path", "description": "ZKS instance ID for the upgrade operation" } ] }, "docs": "Upgrade a ZKS instance to a new base OS image or Kubernetes version. This operation will update the underlying infrastructure.\n\n**Example Request:**\n```json\n{\n \"baseOSImage\": {\n \"name\": \"ubuntu-22.04-lts\",\n \"version\": \"22.04.3\",\n \"digest\": \"sha256:abcd1234...\"\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 " }, { "info": { "name": "Import an existing ZKS instance", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/v1/zks/instances/import", "headers": [ { "name": "X-Request-Id", "value": "" } ] }, "docs": "Import an existing Kubernetes cluster as a ZKS instance into the ZEDEDA platform. This allows managing externally created clusters through ZEDEDA.\n\n**Example Request:**\n```json\n{\n \"projectId\": \"project-123\",\n \"name\": \"imported-cluster\",\n \"title\": \"Imported Production Cluster\",\n \"description\": \"Externally created cluster imported into ZEDEDA\",\n \"tags\": {\n \"environment\": \"production\",\n \"source\": \"external\"\n },\n \"nodes\": [\n {\n \"id\": \"node-001\",\n \"clusterInterface\": \"eth0\"\n" }, { "info": { "name": "Bulk upgrade K3s version", "type": "http" }, "http": { "method": "PUT", "url": "{{baseUrl}}/v1/zks/instances/k3s-upgrade", "headers": [ { "name": "X-Request-Id", "value": "" } ] }, "docs": "Upgrade K3s version for multiple ZKS instances simultaneously. This operation initiates a rolling upgrade across the specified clusters.\n\n**Example Request:**\n```json\n{\n \"ids\": [\n \"zks-instance-abc123\",\n \"zks-instance-def456\"\n ],\n \"data\": {\n \"version\": \"v1.28.5+k3s1\"\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 \"ob" }, { "info": { "name": "Get available K3s versions", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/zks/instances/k3s-versions", "headers": [ { "name": "X-Request-Id", "value": "" } ] }, "docs": "Retrieve a list of available K3s versions that can be used for cluster creation or upgrades.\n\n**Example Request:**\n```\nGET /v1/zks/instances/k3s-versions\n```\n\n**Example Response:**\n```json\n{\n \"list\": [\n {\n \"id\": \"v1.28.5+k3s1\",\n \"version\": \"v1.28.5+k3s1\",\n \"type\": \"release\"\n },\n {\n \"id\": \"v1.28.4+k3s2\",\n \"version\": \"v1.28.4+k3s2\",\n \"type\": \"release\"\n },\n {\n \"id\": \"v1.27.9+k3s1\",\n \"version\": \"v1.27.9+k3s1\",\n \"type\": \"release\"\n },\n " }, { "info": { "name": "Get ZKS instance by name", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/zks/instances/name/:zksName", "headers": [ { "name": "X-Request-Id", "value": "" } ], "params": [ { "name": "zksName", "value": "", "type": "path", "description": "Name of the ZKS instance. This field is required and must be a valid ZKS instance name." } ] }, "docs": "Retrieve detailed information about a specific ZKS instance by its name.\n\n**Example Request:**\n```\nGET /v1/zks/instances/name/production-cluster\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 },\n \"nodes\": [\n {\n \"id\": \"node-001\"" }, { "info": { "name": "Get ZKS instance metrics by name", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/zks/instances/name/:zksName/metrics", "headers": [ { "name": "X-Request-Id", "value": "" } ], "params": [ { "name": "zksName", "value": "", "type": "path", "description": "Name of the ZKS instance. This field is required and must be a valid ZKS instance name." } ] }, "docs": "Retrieve detailed metrics for a specific ZKS instance by its name including resource utilization and capacity information.\n\n**Example Request:**\n```\nGET /v1/zks/instances/name/production-cluster/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" }, { "info": { "name": "Get registration commands by name", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/zks/instances/name/:zksName/registration-commands", "headers": [ { "name": "X-Request-Id", "value": "" } ], "params": [ { "name": "zksName", "value": "", "type": "path", "description": "Name of the ZKS instance. This field is required and must be a valid ZKS instance name." } ] }, "docs": "Retrieve registration commands for adding nodes to a ZKS instance by its name. These commands can be executed on edge devices to join them to the cluster.\n\n**Example Request:**\n```\nGET /v1/zks/instances/name/production-cluster/registration-commands\n```\n\n**Example Response:**\n```json\n{\n \"created\": \"2024-01-15T10:30:00Z\",\n \"manifestUrl\": \"https://api.zededa.com/manifests/production-cluster\",\n \"commands\": {\n \"command\": \"curl -sfL https://get.k3s.io | K3S_URL=https://cluster.example.com:6443 K" }, { "info": { "name": "Get ZKS instances status", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/zks/instances/status", "headers": [ { "name": "X-Request-Id", "value": "" } ] }, "docs": "Retrieve detailed status information for all ZKS instances including runtime metrics, capacity information, and node health.\n\n**Query Parameters:**\n- `zksid` (optional): Filter by ZKS instance ID\n- `zksname` (optional): Filter by ZKS instance name\n- `zksnamePattern` (optional): Filter by ZKS instance name pattern\n- `projectName` (optional): Filter by project name\n- `projectNamePattern` (optional): Filter by project name pattern\n- `tags` (optional): Filter by tags (JSON object)\n\n**Example Request" } ] } ], "bundled": true }