Zededa ClusterGroups API

APIs for managing cluster groups including creation, deletion, status monitoring, and manifest generation

Operations 5

POST /v1/zks/cluster/groups Create a new cluster group #
DELETE /v1/zks/cluster/groups/id/{clusterGroupId} Delete cluster group #
PUT /v1/zks/cluster/groups/id/{id} Update cluster group #
GET /v1/zks/cluster/groups/manifest Get cluster group manifest #
GET /v1/zks/cluster/groups/status Get cluster groups 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-clustergroups-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-clustergroups-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ZEDEDA App Profiles Service AppProfileService Cluster Groups 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: 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.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '201':
          description: Successfully created cluster group
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '400':
          description: Bad Request. Invalid cluster group 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 cluster groups.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '409':
          description: Conflict. Cluster group with the same name already exists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to create cluster group 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:
      - ClusterGroups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClusterGroup'
        required: true
  /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
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '400':
          description: Bad Request. Invalid cluster group 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 cluster group.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '404':
          description: Not Found. Cluster group with the specified ID does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '409':
          description: Conflict. Cannot delete cluster group due to active dependencies.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to delete cluster group 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: clusterGroupId
        description: Unique identifier of the cluster group. This field is required and must be a valid cluster group 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:
      - 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
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '400':
          description: Bad Request. Invalid cluster group 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 cluster group.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '404':
          description: Not Found. Cluster group with the specified ID does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '409':
          description: Conflict. Update conflicts with current cluster group state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to update cluster group 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 cluster group
        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:
      - ClusterGroups
      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 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: '#/components/schemas/ClusterGroupManifest'
                  description: The cluster group manifest
              description: Cluster Group details
              title: Cluster Group details
              required:
              - projectId
              - name
        required: true
  /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
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterGroupManifestOutput'
        '400':
          description: Bad Request. Invalid query parameters or manifest generation criteria.
          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 access cluster group manifests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '404':
          description: Not Found. No cluster group found matching the specified criteria.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to generate manifest 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:
      - ClusterGroups
      parameters:
      - name: X-Request-Id
        in: header
        required: false
        description: User-Agent specified id to track a request
        schema:
          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
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterGroupStatusListResp'
        '400':
          description: Bad Request. Invalid query 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 view cluster groups status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to retrieve status 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:
      - ClusterGroups
      parameters:
      - name: X-Request-Id
        in: header
        required: false
        description: User-Agent specified id to track a request
        schema:
          type: string
components:
  schemas:
    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
    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:
          type: integer
          format: int64
          description: Number of resources in the cluster group that are in unknown state
        waitApplied:
          type: integer
          format: int64
          description: Number of resources in the cluster group that are waiting for applied state
    ZsrvError:
      type: object
      properties:
        ec:
          $ref: '#/components/schemas/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
    ClusterGroupCluster:
      type: object
      properties:
        name:
          type: string
          description: Name of the cluster in the cluster group
        state:
          type: string
          $ref: '#/components/schemas/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
    protobufAny:
      type: object
      properties:
        typeUrl:
          type: string
        value:
          type: string
          format: byte
    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: '#/components/schemas/ClusterGroupManifest'
          description: The cluster group manifest
      description: Cluster Group details
      title: Cluster Group details
      required:
      - projectId
      - name
    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.
    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
    ClusterGroupManifestOutput:
      type: object
      properties:
        manifest:
          $ref: '#/components/schemas/ClusterGroupManifestJaml'
          description: The cluster group manifest in jaml format
    ZsrvResponse:
      type: object
      properties:
        operationType:
          $ref: '#/components/schemas/ZcOpsType'
          title: "Describes one of the operations type : possible values\n                        Read/Delete/Create/Update/List"
        operationStatus:
          $ref: '#/components/schemas/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: '#/components/schemas/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: '#/components/schemas/ZsrvError'
          title: 'one or more errors will be set if the operation failed

            i.e. httpStatusCode != 2xx'
    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: '#/components/schemas/RunState'
          description: Run state of the cluster group
        clusterReadiness:
          $ref: '#/components/schemas/ClusterReadiness'
          description: Readiness of the clusters in the cluster group
        resources:
          $ref: '#/components/schemas/ClusterGroupResources'
          description: Resources in the cluster group
        clusters:
          type: array
          items:
            $ref: '#/components/schemas/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
    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
    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
    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_

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