Zededa ClusterGroups API
APIs for managing cluster groups including creation, deletion, status monitoring, and manifest generation
APIs for managing cluster groups including creation, deletion, status monitoring, and manifest generation
swagger: '2.0'
info:
title: ZEDEDA App Profiles Service AppProfileService ClusterGroups 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
basePath: /api
schemes:
- https
consumes:
- application/json
produces:
- application/json
security:
- BearerToken: []
tags:
- name: ClusterGroups
description: APIs for managing cluster groups including creation, deletion, status monitoring, and manifest generation
paths:
/v1/zks/cluster/groups:
post:
summary: Create a new cluster group
description: "Create a new cluster group with specified configuration and manifest.\n\n**Example Request:**\n```json\n{\n \"projectId\": \"project-123\",\n \"name\": \"production-cluster-group\",\n \"title\": \"Production Cluster Group\",\n \"description\": \"Cluster group for production environments\",\n \"tags\": {\n \"environment\": \"production\",\n \"region\": \"us-west\",\n \"team\": \"platform\"\n },\n \"manifest\": {\n \"yamlContent\": \"apiVersion: v1\\nkind: Namespace\\nmetadata:\\n name: production-ns\"\n }\n}\n```\n\n**Example Response:**\n```json\n{\n \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n \"objectKind\": \"\",\n \"objectId\": \"cluster-group-abc123\",\n \"objectName\": \"production-cluster-group\",\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: ClusterGroups_CreateClusterGroup
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/ZsrvResponse'
'201':
description: Successfully created cluster group
schema:
$ref: '#/definitions/ZsrvResponse'
'400':
description: Bad Request. Invalid cluster group configuration or missing required fields.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. Authentication credentials are missing or invalid.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. User does not have permission to create cluster groups.
schema:
$ref: '#/definitions/ZsrvResponse'
'409':
description: Conflict. Cluster group with the same name already exists.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. Failed to create cluster group due to server error.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/ClusterGroup'
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
tags:
- ClusterGroups
/v1/zks/cluster/groups/id/{clusterGroupId}:
delete:
summary: Delete cluster group
description: "Delete a cluster group and all its associated resources. This operation is irreversible and will remove the cluster group configuration.\n\n**Example Request:**\n```\nDELETE /v1/zks/cluster/groups/id/cluster-group-abc123\n```\n\n**Example Response:**\n```json\n{\n \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n \"objectKind\": \"\",\n \"objectId\": \"cluster-group-abc123\",\n \"objectName\": \"production-cluster-group\",\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 cluster group and all its configurations. Ensure all important data is backed up before deletion."
operationId: ClusterGroups_DeleteClusterGroup
responses:
'200':
description: Successfully deleted cluster group
schema:
$ref: '#/definitions/ZsrvResponse'
'400':
description: Bad Request. Invalid cluster group ID format.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. Authentication credentials are missing or invalid.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. User does not have permission to delete this cluster group.
schema:
$ref: '#/definitions/ZsrvResponse'
'404':
description: Not Found. Cluster group with the specified ID does not exist.
schema:
$ref: '#/definitions/ZsrvResponse'
'409':
description: Conflict. Cannot delete cluster group due to active dependencies.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. Failed to delete cluster group due to server error.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: clusterGroupId
description: Unique identifier of the cluster group. This field is required and must be a valid cluster group ID.
in: path
required: true
type: string
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
tags:
- ClusterGroups
/v1/zks/cluster/groups/id/{id}:
put:
summary: Update cluster group
description: "Update an existing cluster group configuration including name, title, description, tags, and manifest.\n\n**Example Request:**\n```json\n{\n \"id\": \"cluster-group-abc123\",\n \"projectId\": \"project-123\",\n \"name\": \"production-cluster-group\",\n \"title\": \"Updated Production Cluster Group\",\n \"description\": \"Updated cluster group for production environments\",\n \"tags\": {\n \"environment\": \"production\",\n \"region\": \"us-west\",\n \"version\": \"v2\"\n },\n \"manifest\": {\n \"yamlContent\": \"apiVersion: v1\\nkind: Namespace\\nmetadata:\\n name: production-ns\\n labels:\\n version: v2\"\n }\n}\n```\n\n**Example Response:**\n```json\n{\n \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n \"objectKind\": \"\",\n \"objectId\": \"cluster-group-abc123\",\n \"objectName\": \"production-cluster-group\",\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: ClusterGroups_UpdateClusterGroup
responses:
'200':
description: Successfully updated cluster group
schema:
$ref: '#/definitions/ZsrvResponse'
'400':
description: Bad Request. Invalid cluster group configuration or missing required fields.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. Authentication credentials are missing or invalid.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. User does not have permission to update this cluster group.
schema:
$ref: '#/definitions/ZsrvResponse'
'404':
description: Not Found. Cluster group with the specified ID does not exist.
schema:
$ref: '#/definitions/ZsrvResponse'
'409':
description: Conflict. Update conflicts with current cluster group state.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. Failed to update cluster group due to server error.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: id
description: System defined universally unique Id of the cluster group
in: path
required: true
type: string
- name: body
in: body
required: true
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 cluster group, unique across the enterprise. Once cluster group is created, name can’t be changed
title:
type: string
description: User defined title of the cluster group. Title can be changed at any time
description:
type: string
description: Detailed description of the cluster group
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: ^[^<%&?/\>]+$
manifest:
type: object
$ref: '#/definitions/ClusterGroupManifest'
description: The cluster group manifest
description: Cluster Group details
title: Cluster Group details
required:
- projectId
- name
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
tags:
- ClusterGroups
/v1/zks/cluster/groups/manifest:
get:
summary: Get cluster group manifest
description: "Generate and retrieve a cluster group manifest based on specified criteria.\n\n**Query Parameters:**\n- `name`: Name of the cluster group\n- `projectName`: Name of the project\n- `tags`: Tags filter (JSON object)\n\n**Example Request:**\n```\nGET /v1/zks/cluster/groups/manifest?name=production-cluster-group&projectName=production-project\nGET /v1/zks/cluster/groups/manifest?tags={\"environment\":\"production\"}\n```\n\n**Example Response:**\n```json\n{\n \"manifest\": {\n \"yamlContent\": \"apiVersion: v1\\nkind: Namespace\\nmetadata:\\n name: production-ns\\n labels:\\n environment: production\\n---\\napiVersion: apps/v1\\nkind: Deployment\\nmetadata:\\n name: app-deployment\\n namespace: production-ns\\nspec:\\n replicas: 3\\n selector:\\n matchLabels:\\n app: production-app\\n template:\\n metadata:\\n labels:\\n app: production-app\\n spec:\\n containers:\\n - name: app\\n image: nginx:latest\\n ports:\\n - containerPort: 80\"\n }\n}\n```"
operationId: ClusterGroups_GetClusterGroupManifest
responses:
'200':
description: Successfully generated cluster group manifest
schema:
$ref: '#/definitions/ClusterGroupManifestOutput'
'400':
description: Bad Request. Invalid query parameters or manifest generation criteria.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. Authentication credentials are missing or invalid.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. User does not have permission to access cluster group manifests.
schema:
$ref: '#/definitions/ZsrvResponse'
'404':
description: Not Found. No cluster group found matching the specified criteria.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. Failed to generate manifest due to server error.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
tags:
- ClusterGroups
parameters:
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
/v1/zks/cluster/groups/status:
get:
summary: Get cluster groups status
description: "Retrieve detailed status information for all cluster groups including readiness, resources, and cluster details.\n\n**Query Parameters:**\n- `id`: Filter by cluster group ID\n- `name`: Filter by cluster group name\n- `namePattern`: Filter by cluster group name pattern\n- `projectName`: Filter by project name\n- `projectNamePattern`: Filter by project name pattern\n\n**Example Request:**\n```\nGET /v1/zks/cluster/groups/status\nGET /v1/zks/cluster/groups/status?name=production-cluster-group\nGET /v1/zks/cluster/groups/status?projectName=production-project\n```\n\n**Example Response:**\n```json\n{\n \"list\": [\n {\n \"id\": \"cluster-group-abc123\",\n \"projectId\": \"project-123\",\n \"projectName\": \"Production Project\",\n \"name\": \"production-cluster-group\",\n \"title\": \"Production Cluster Group\",\n \"description\": \"Cluster group for production environments\",\n \"tags\": {\n \"environment\": \"production\",\n \"region\": \"us-west\"\n },\n \"state\": \"DEPLOYED\",\n \"clusterReadiness\": {\n \"total\": 5,\n \"ready\": 4\n },\n \"resources\": {\n \"amount\": 25,\n \"summary\": {\n \"missing\": 0,\n \"modified\": 1,\n \"notReady\": 1,\n \"orphaned\": 0,\n \"ready\": 23,\n \"unknown\": 0,\n \"waitApplied\": 0\n }\n },\n \"clusters\": [\n {\n \"name\": \"cluster-001\",\n \"state\": \"DEPLOYED\",\n \"bundleReady\": \"True\",\n \"reposReady\": \"True\",\n \"resources\": 5,\n \"lastSeen\": \"2024-01-15T12:00:00Z\",\n \"age\": \"2024-01-10T10:00:00Z\"\n }\n ],\n \"namespace\": \"production-ns\",\n \"age\": \"2024-01-10T10:00:00Z\"\n }\n ]\n}\n```"
operationId: ClusterGroups_GetClusterGroupsStatus
responses:
'200':
description: Successfully retrieved cluster groups status
schema:
$ref: '#/definitions/ClusterGroupStatusListResp'
'400':
description: Bad Request. Invalid query parameters.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. Authentication credentials are missing or invalid.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. User does not have permission to view cluster groups status.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. Failed to retrieve status due to server error.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
tags:
- ClusterGroups
parameters:
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
definitions:
ZcOpsType:
type: string
enum:
- OPS_TYPE_UNSPECIFIED
- OPS_TYPE_READ
- OPS_TYPE_DELETE
- OPS_TYPE_CREATE
- OPS_TYPE_UPDATE
- OPS_TYPE_LIST
default: OPS_TYPE_UNSPECIFIED
title: ZedCloud internal operation type
ObjectType:
type: string
enum:
- OBJECT_TYPE_UNSPECIFIED
- OBJECT_TYPE_USER
- OBJECT_TYPE_EDGE_NODE
- OBJECT_TYPE_EDGE_APP
- OBJECT_TYPE_IMAGE
- OBJECT_TYPE_EDGE_APP_INSTANCE
- OBJECT_TYPE_PROJECT
- OBJECT_TYPE_NETWORK
- OBJECT_TYPE_DATASTORE
- OBJECT_TYPE_SERVICE
- OBJECT_TYPE_SERVICE_INSTANCE
- OBJECT_TYPE_ENTERPRISE
- OBJECT_TYPE_ROLE
- OBJECT_TYPE_CREDENTIAL
- OBJECT_TYPE_NETWORK_INSTANCE
- OBJECT_TYPE_VOLUME_INSTANCE
- OBJECT_TYPE_REALM
- OBJECT_TYPE_AUTHPROFILE
- OBJECT_TYPE_POLICY
- OBJECT_TYPE_APP_POLICY
- OBJECT_TYPE_CLUSTER_INSTANCE
- OBJECT_TYPE_PLUGIN
- OBJECT_TYPE_DOC_POLICY
- OBJECT_TYPE_ORCHESTRATOR_CLUSTER
- OBJECT_TYPE_TAGS
- OBJECT_TYPE_EDGE_NODE_INTERFACE
- OBJECT_TYPE_DEPLOYMENT
- OBJECT_TYPE_ENTITLEMENTS
- OBJECT_TYPE_DATA_STREAM
- OBJECT_TYPE_API_USAGE
- OBJECT_TYPE_APP_INSTANCE_SNAPSHOT
- OBJECT_TYPE_PATCH_ENVELOPE
- OBJECT_TYPE_RESOURCE_USAGE_TRACK
- OBJECT_TYPE_PATCH_ENVELOPE_REFERENCE
- OBJECT_TYPE_DEV_PASSTHROUGH
- OBJECT_TYPE_EDGE_NODE_CLUSTER
- OBJECT_TYPE_ASSET_GROUP
- OBJECT_TYPE_APP_PROFILE
- OBJECT_TYPE_PROFILE_DEPLOYMENT
- OBJECT_TYPE_ZKS_INSTANCE
- OBJECT_TYPE_CLUSTER_GROUP
default: OBJECT_TYPE_UNSPECIFIED
ClusterGroupManifestOutput:
type: object
properties:
manifest:
$ref: '#/definitions/ClusterGroupManifestJaml'
description: The cluster group manifest in jaml format
ClusterGroupManifest:
type: object
properties:
yamlContent:
type: string
description: The content of an yaml manifest
description: Cluster Group Manifest details
title: Cluster Group Manifest details
required:
- yamlContent
ClusterGroup:
type: object
properties:
id:
type: string
description: System defined universally unique Id of the cluster group
readOnly: true
pattern: '[0-9A-Za-z-]+'
uniqueItems: true
projectId:
type: string
description: Foreign key to the project
pattern: '[0-9A-Za-z-]+'
name:
type: string
description: User defined name of the cluster group, unique across the enterprise. Once cluster group is created, name can’t be changed
title:
type: string
description: User defined title of the cluster group. Title can be changed at any time
description:
type: string
description: Detailed description of the cluster group
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: ^[^<%&?/\>]+$
manifest:
type: object
$ref: '#/definitions/ClusterGroupManifest'
description: The cluster group manifest
description: Cluster Group details
title: Cluster Group details
required:
- projectId
- name
ClusterReadiness:
type: object
properties:
total:
type: integer
format: int64
description: Total number of clusters in the cluster group
ready:
type: integer
format: int64
description: Number of clusters in the cluster group that are ready
protobufAny:
type: object
properties:
typeUrl:
type: string
value:
type: string
format: byte
Cursor:
type: object
properties:
pageToken:
type: string
description: Page Token
orderBy:
type: array
items:
type: string
description: OrderBy helps in sorting the list response
pageNum:
type: number
format: int64
description: Page Number
pageSize:
type: number
format: int64
description: Defines the page size
totalPages:
type: number
format: int64
description: Total number of pages to be fetched.
description: 'Cursor helps in filtering the various list response like edge-app bundle list, model list, bundle list etc. '
title: Cursor is used as filter in list operation.
ClusterGroupManifestJaml:
type: object
properties:
yamlContent:
type: string
description: The content of an jaml manifest
ClusterGroupResources:
type: object
properties:
amount:
type: integer
format: int64
description: Total resources of clusters in the cluster group
summary:
$ref: '#/definitions/ClusterGroupResourceSummary'
description: Summary of the resources in the cluster group
ZcOpsStatus:
type: string
enum:
- OPS_STATUS_UNSPECIFIED
- OPS_STATUS_PENDING
- OPS_STATUS_ONGOING
- OPS_STATUS_COMPLETE
default: OPS_STATUS_UNSPECIFIED
description: "- OPS_STATUS_PENDING: In rare cases, system may not start operation when it was requested. Client will be notified that operation is PENDING\n - OPS_STATUS_ONGOING: system will start the operation, but at the time response was generated, operation is still ONGOING.\n - OPS_STATUS_COMPLETE: Even if the result of the operations may result in failure, but the OpsStatus will marked COMPLETE for almost all cases."
title: ZedCloud internal operation status
ZsrvError:
type: object
properties:
ec:
$ref: '#/definitions/ZsrvErrorCode'
title: 'Enumrated error code, describes more granular numerical
value than just httpStatus'
location:
type: string
title: 'Ignore: Internal field only'
details:
type: string
title: Field captures string description of details
googlerpcStatus:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
details:
type: array
items:
$ref: '#/definitions/protobufAny'
ClusterGroupStatus:
type: object
properties:
id:
type: string
description: System defined universally unique Id of the cluster group
readOnly: true
pattern: '[0-9A-Za-z-]+'
uniqueItems: true
projectId:
type: string
description: Foreign key to the project
pattern: '[0-9A-Za-z-]+'
projectName:
type: string
description: Name of the project to which this cluster group belongs
name:
type: string
description: User defined name of the cluster group, unique across the enterprise. Once cluster group is created, name can’t be changed
title:
type: string
description: User defined title of the cluster group. Title can be changed at any time
description:
type: string
description: Detailed description of the cluster group
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: ^[^<%&?/\>]+$
state:
$ref: '#/definitions/RunState'
description: Run state of the cluster group
clusterReadiness:
$ref: '#/definitions/ClusterReadiness'
description: Readiness of the clusters in the cluster group
resources:
$ref: '#/definitions/ClusterGroupResources'
description: Resources in the cluster group
clusters:
type: array
items:
$ref: '#/definitions/ClusterGroupCluster'
description: List of clusters in the cluster group
namespace:
type: string
description: Namespace of the cluster group
age:
type: string
format: date-time
description: Age of the cluster group
clusterTags:
type: object
additionalProperties:
type: string
description: Cluster tags are name/value pairs that enable you to categorize clusters
ZsrvResponse:
type: object
properties:
operationType:
$ref: '#/definitions/ZcOpsType'
title: "Describes one of the operations type : possible values\n Read/Delete/Create/Update/List"
operationStatus:
$ref: '#/definitions/ZcOpsStatus'
title: if this is log running job
objectKind:
type: string
title: zedcloud object kind on which the operation was performed
objectId:
type: string
title: Unique value identifies the object that was operated on
objectName:
type: string
title: name of the object
objectRevision:
type: string
title: 'object revision post the operation, note Read operation
doesn''t change the revision'
objectType:
$ref: '#/definitions/ObjectType'
operationTime:
type: string
title: time of operation
startTime:
type: string
title: total time taken by operations
endTime:
type: string
user:
type: string
title: the operation is performed on behalf of this user
httpStatusCode:
type: integer
format: int32
title: http response
httpStatusMsg:
type: string
title: summary of the error in text format
jobId:
type: string
title: for tracking asynchronous tasks
error:
type: array
items:
$ref: '#/definitions/ZsrvError'
title: 'one or more errors will be set if the operation failed
i.e. httpStatusCode != 2xx'
ZsrvErrorCode:
type: string
enum:
- zMsgErrorNone
- zMsgSucess
- NotFound
- AlreadyExists
- VersionMismatch
- RangeError
- LargeResult
- IncompleteData
- InvalidData
- FunctionUnsupported
- NoMemory
- SendFailure
- Timeout
- BadReqBody
- BadReqParam
- InvalidFieldFormat
- UrlNotFound
- ApiVersionNotSupported
- Unauthorized
- Forbidden
- Conflict
- NotModified
- DependencyConflict
- JsonFmtError
- ProtoFmtError
- CertError
- DataBaseConnection
- DBError
- zMsgAccepted
- zMsgCreated
- PreConditionFailed
- InternalServerError
default: zMsgErrorNone
description: "- zMsgErrorNone: common validation errors\n - IncompleteData: message had fields that weren't filled in\n - InvalidData: message contained the field that wasn't expected\n - FunctionUnsupported: this feature unavailable on this version of device\n - InvalidFieldFormat: message contained the field that wasn't correctly formatted\n - JsonFmtError: Marshal / Unmarshal errors\n - DataBaseConnection: generic DB error"
title: ZedCould internal error code
ClusterGroupStatusListResp:
type: object
properties:
list:
type: array
items:
$ref: '#/definitions/ClusterGroupStatus'
description: Detailed statuses of the cluster groups
result:
$ref: '#/definitions/ZsrvResponse'
description: Response result
totalCount:
type: integer
format: int64
description: Total number of cluster groups satisfying the filter criteria
next:
$ref: '#/definitions/Cursor'
description: Cursor for pagination
RunState:
type: string
enum:
- RUN_STATE_UNSPECIFIED
- RUN_STATE_ONLINE
- RUN_STATE_HALTED
- RUN_STATE_INIT
- RUN_STATE_REBOOTING
- RUN_STATE_OFFLINE
- RUN_STATE_UNKNOWN
- RUN_STATE_UNPROVISIONED
- RUN_STATE_PROVISIONED
- RUN_STATE_SUSPECT
- RUN_STATE_DOWNLOADING
- RUN_STATE_RESTARTING
- RUN_STATE_PURGING
- RUN_STATE_HALTING
- RUN_STATE_ERROR
- RUN_STATE_VERIFYING
- RUN_STATE_LOADING
- RUN_STATE_CREATING_VOLUME
- RUN_STATE_BOOTING
- RUN_STATE_MAINTENANCE_MODE
- RUN_STATE_START_DELAYED
- RUN_STATE_BASEOS_UPDATING
- RUN_STATE_PREPARING_POWEROFF
- RUN_STATE_POWERING_OFF
- RUN_STATE_PREPARED_POWEROFF
default: RUN_STATE_UNSPECIFIED
description: "- RUN_STATE_ONLINE: Entity Online\n - RUN_STATE_HALTED: Entity Halted\n - RUN_STATE_INIT: Entity Initializing\n - RUN_STATE_REBOOTING: Entity Rebooting\n - RUN_STATE_OFFLINE: Entity Offline\n - RUN_STATE_UNKNOWN: Entity state Unknown\n - RUN_STATE_UNPROVISIONED: Entity Unprovisioned\n - RUN_STATE_PROVISIONED: Entity Provisioned\n - RUN_STATE_SUSPECT: Entity Suspect\n - RUN_STATE_DOWNLOADING: Edge-node downloading entity artifacts\n - RUN_STATE_RESTARTING: Entity Restarting\n - RUN_STATE_PURGING: Entity Purging\n - RUN_STATE_HALTING: Entity Halting\n - RUN_STATE_ERROR: Entity encountered an error\n - RUN_STATE_VERIFYING: Verification of downloaded Artifacts in Progress.\n - RUN_STATE_LOADING: Loading of Artifacts into local datastore in Progress.\n - RUN_STATE_CREATING_VOLUME: Volume creation from artifacts in Progress\n - RUN_STATE_BOOTING: Entity booting up\n - RUN_STATE_MAINTENANCE_MODE: Entity maintenance mode\n - RUN_STATE_START_DELAYED: Application start delayed as per configuration\n - RUN_STATE_BASEOS_UPDATING: Device BaseOs Update in Progress\n - RUN_STATE_PREPARING_POWEROFF: device preparing power off - shutting down all app instances\n - RUN_STATE_POWERING_OFF: device powering off from local profile server\n - RUN_STATE_PREPARED_POWEROFF: device prepared power off - all app instances are shut down"
title: RunState - On update, please update RunState_HttpRequest as well
ClusterGroupCluster:
type: object
properties:
name:
type: string
description: Name of the cluster in the cluster group
state:
type: string
$ref: '#/definitions/RunState'
description: State of the cluster in the cluster group
bundleReady:
type: string
description: Bundle readiness of the cluster in the cluster group
reposReady:
type: string
description: Repository readiness of the cluster in the cluster group
resources:
type: integer
format: int64
description: Number of resources in the cluster in the cluster group
lastSeen:
type: string
format: date-time
description: Last seen timestamp of the cluster in the cluster group
age:
type: string
format: date-time
description: Age of the cluster in the cluster group
ClusterGroupResourceSummary:
type: object
properties:
missing:
type: integer
format: int64
description: Number of resources in the cluster group that are missing
modified:
type: integer
format: int64
description: Number of resources in the cluster group that are modified
notReady:
type: integer
format: int64
description: Number of resources in the cluster group that are not ready
orphaned:
type: integer
format: int64
description: Number of resources in the cluster group that are orphaned
ready:
type: integer
format: int64
description: Number of resources in the cluster group that are ready
unknown:
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zededa/refs/heads/main/openapi/zededa-clustergroups-api-openapi.yml