openapi: 3.0.0 info: title: Telco Cloud Automation Cluster API. description: Telco Cloud Automation Cluster API. termsOfService: https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/product/vmware-product-guide.pdf contact: name: VMware license: name: Copyright (c) 2020-2021 VMware, Inc. All rights reserved. version: "1.0" servers: - url: /hybridity/api/ tags: - name: Cluster description: Telco Cloud Automation Cluster API paths: /infra/k8s/clusters: get: tags: - Cluster description: Api to get clusters for Telco Cloud Automation operationId: getClusters responses: "200": description: Returns clusters content: application/json: schema: type: array items: $ref: '#/components/schemas/cluster' post: tags: - Infra summary: Api to deploy Kubernetes Cluster for Telco Cloud Automation description: Api to deploy Kubernetes Cluster for Telco Cloud Automation operationId: deployCluster requestBody: description: create cluster content: application/json: schema: $ref: '#/components/schemas/clusterRequest' required: true responses: "200": description: Successfully deployed cluster. content: application/json: schema: $ref: '#/components/schemas/clusterAPIResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/errorResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errorResponse' /infra/k8s/clusters/{clusterId}: get: tags: - Cluster description: Get K8 cluster operationId: getK8Cluster parameters: - name: clusterId in: path required: true style: simple explode: false schema: type: string responses: "200": description: returns cluster with given id content: application/json: schema: $ref: '#/components/schemas/cluster' put: tags: - Infra summary: Api to edit a cluster for Telco Cloud Automation description: Api to edit a cluster for Telco Cloud Automation operationId: editCluster parameters: - name: clusterId in: path required: true style: simple explode: false schema: type: string requestBody: description: Edit cluster content: application/json: schema: $ref: '#/components/schemas/cluster' required: true responses: "200": description: Successfully updated cluster. content: application/json: schema: $ref: '#/components/schemas/clusterAPIResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/errorResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errorResponse' post: tags: - Infra description: Collects the specifications of the cluster and returns back the payload which can be used to deploy cluster of the same configuration. It may result in creation of new cluster template as well. operationId: genereateSpec parameters: - name: clusterId in: path required: true style: simple explode: false schema: type: string - name: action in: query required: true style: form explode: true schema: type: string enum: - genereateSpec responses: "200": description: Successfully generated the specifications of the cluster content: application/json: schema: $ref: '#/components/schemas/clusterSpec' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errorResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/errorResponse' delete: tags: - Cluster description: Delete K8 cluster operationId: undeployInfra parameters: - name: clusterId in: path required: true style: simple explode: false schema: type: string responses: "200": description: Delete K8 cluster content: application/json: schema: $ref: '#/components/schemas/inline_response_200' /infra/k8s/clusters/{clusterId}/tasks: get: tags: - Cluster description: Get cluster tasks operationId: getClusterTasks parameters: - name: clusterId in: path required: true style: simple explode: false schema: type: string responses: "200": description: Get cluster tasks content: application/json: schema: $ref: '#/components/schemas/inline_response_200_1' /infra/k8s/clusters/query: post: tags: - Cluster summary: Api to query Kubernetes Cluster for Telco Cloud Automation description: Api to query Kubernetes Cluster for Telco Cloud Automation operationId: infraClusterQuery requestBody: description: query cluster content: application/json: schema: $ref: '#/components/schemas/body' required: true responses: "200": description: Query cluster response. content: application/json: schema: $ref: '#/components/schemas/cluster' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/errorResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errorResponse' /infra/k8s/cluster/{clusterId}/nodepool/{nodePoolId}: get: tags: - Infra description: Get K8 cluster node pool operationId: getK8ClusterNodePool parameters: - name: clusterId in: path required: true style: simple explode: false schema: type: string - name: nodePoolId in: path required: true style: simple explode: false schema: type: string responses: "200": description: returns cluster with given id content: application/json: schema: $ref: '#/components/schemas/nodePool' put: tags: - Infra summary: Api to edit a node pool description: Api to edit a nodepool operationId: editNodePool parameters: - name: clusterId in: path required: true style: simple explode: false schema: type: string - name: nodePoolId in: path required: true style: simple explode: false schema: type: string requestBody: description: edit cluster node pool content: application/json: schema: $ref: '#/components/schemas/nodePool' required: true responses: "200": description: Successfully updated cluster node pool. content: application/json: schema: $ref: '#/components/schemas/clusterAPIResponse' delete: tags: - Infra description: Delete K8 cluster node pool operationId: deleteNodePool parameters: - name: clusterId in: path required: true style: simple explode: false schema: type: string - name: nodePoolId in: path required: true style: simple explode: false schema: type: string responses: "200": description: Delete K8 cluster nodepool content: application/json: schema: $ref: '#/components/schemas/clusterAPIResponse' /infra/k8s/cluster/{clusterId}/nodepool/{nodePoolId}/upgrade: post: tags: - Infra description: Upgrade Nodepool. This Upgrades the nodepools to use latest features of Cluster Automation. This is mandatory to be done on all nodepools created in TCA 1.7. This is one time operation on upgrading TCA to 1.8 and once successfully upgraded all the operations on nodepool will be enabled. Upgrade can be repeated on nodepool incase of any failure. operationId: upgradeNodePool parameters: - name: clusterId in: path required: true style: simple explode: false schema: type: string - name: nodePoolId in: path required: true style: simple explode: false schema: type: string responses: "200": description: Successfully initiated upgrade cluster node pool. content: application/json: schema: $ref: '#/components/schemas/clusterAPIResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/errorResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errorResponse' /infra/k8s/cluster/{clusterId}/nodepool/{nodePoolId}/pause: put: tags: - Infra summary: Pause a Nodepool in a cluster description: Pause a Nodepool in a cluster operationId: pauseNodePool parameters: - name: clusterId in: path required: true style: simple explode: false schema: type: string - name: nodePoolId in: path required: true style: simple explode: false schema: type: string responses: "200": description: Successfully paused a cluster node pool. content: application/json: schema: $ref: '#/components/schemas/clusterAPIResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/errorResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errorResponse' /infra/k8s/cluster/{clusterId}/nodepool/{nodePoolId}/unpause: put: tags: - Infra summary: Unpause a Nodepool in a cluster description: Unpause a Nodepool in a cluster operationId: unpauseNodePool parameters: - name: clusterId in: path required: true style: simple explode: false schema: type: string - name: nodePoolId in: path required: true style: simple explode: false schema: type: string responses: "200": description: Successfully unpaused a cluster node pool. content: application/json: schema: $ref: '#/components/schemas/clusterAPIResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/errorResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errorResponse' /infra/k8s/cluster/{clusterId}/configurations: get: tags: - Infra description: Get K8 cluster configurations operationId: getClusterConfig parameters: - name: clusterId in: path required: true style: simple explode: false schema: type: string responses: "200": description: returns cluster configurations content: application/json: schema: $ref: '#/components/schemas/clusterConfigurations' put: tags: - Infra summary: Api to edit cluster config description: Api to edit cluster config operationId: editClusterConfig parameters: - name: clusterId in: path required: true style: simple explode: false schema: type: string requestBody: description: Edit Cluster Config content: application/json: schema: $ref: '#/components/schemas/clusterConfigurations' required: true responses: "200": description: Successfully edited cluster config. content: application/json: schema: $ref: '#/components/schemas/clusterAPIResponse' /infra/k8s/cluster/{clusterId}/nodepool: post: tags: - Infra description: Create K8 cluster Node Pools operationId: createClusterNodePool parameters: - name: clusterId in: path required: true style: simple explode: false schema: type: string requestBody: description: create cluster node pool content: application/json: schema: $ref: '#/components/schemas/nodePool' required: true responses: "200": description: Successfully created cluster node pool. content: application/json: schema: $ref: '#/components/schemas/clusterAPIResponse' /infra/k8s/cluster/{clusterId}/nodepools: get: tags: - Infra description: Api to get node pools for Telco Cloud Automation operationId: getClustersNodePools parameters: - name: clusterId in: path required: true style: simple explode: false schema: type: string responses: "200": description: Returns nodepools content: application/json: schema: $ref: '#/components/schemas/nodePoolList' /infra/k8s/clusters/{id}/changePassword: put: tags: - Infra summary: Api to edit Cluster password description: Api to edit Cluster password operationId: changeClusterPassword parameters: - name: id in: path required: true style: simple explode: false schema: type: string requestBody: description: Edit Cluster Password content: application/json: schema: $ref: '#/components/schemas/body_1' required: true responses: "200": description: Successfully triggered update of cluster password content: application/json: schema: $ref: '#/components/schemas/clusterAPIResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/errorResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errorResponse' /infra/k8s/clusters/{id}/k8sUpgrade: put: tags: - Infra summary: Api to upgrade K8s version of Cluster for Telco Cloud Automation description: Api to upgrade K8s version of Cluster for Telco Cloud Automation operationId: upgradeCluster parameters: - name: id in: path required: true style: simple explode: false schema: type: string requestBody: description: upgrade kubernetes version content: application/json: schema: $ref: '#/components/schemas/clusterUpgradeRequest' required: true responses: "200": description: Successfully triggered update of cluster password content: application/json: schema: $ref: '#/components/schemas/clusterAPIResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/errorResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errorResponse' /infra/k8s/clusters/{id}/k8sUpgradeValidationResponse: get: tags: - Infra summary: Api to validate K8s version upgrade of Cluster for Telco Cloud Automation description: Api to validate K8s version upgrade of Cluster for Telco Cloud Automation operationId: validateUpgradeCluster parameters: - name: id in: path required: true style: simple explode: false schema: type: string responses: "200": description: Successfully triggered update of cluster password content: application/json: schema: $ref: '#/components/schemas/validateResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/errorResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errorResponse' /infra/k8s/supportedK8sVersions: get: tags: - Infra summary: Api to get all the supported K8s versions of cluster for Telco Cloud Automation description: Api to get all the supported K8s versions of cluster for Telco Cloud Automation operationId: supportedKubernetesVersions responses: "200": description: Returns supported kubernetes versions content: application/json: schema: $ref: '#/components/schemas/supportedVersionsList' /infra/k8s/clusters/{id}/k8sUpgradeHistory: get: tags: - Infra summary: Api to get the K8s versions upgrade history of cluster for Telco Cloud Automation description: Api to get the K8s versions upgrade history of cluster for Telco Cloud Automation operationId: upgradeHistory parameters: - name: id in: path required: true style: simple explode: false schema: type: string responses: "200": description: Returns cluster upgrade history content: application/json: schema: $ref: '#/components/schemas/upgradeHistory' /infra/k8s/k8sVersionUpgradeMatrix/query: post: tags: - Infra summary: Api to get the K8s versions upgrade matrix for Telco Cloud Automation description: Api to get the K8s versions upgrade matrix for Telco Cloud Automation operationId: kuberenetesVersionUpgradeMatrix requestBody: description: Filter object. content: application/json: schema: $ref: '#/components/schemas/filter' required: true responses: "200": description: Successfully retrieved version matrix. content: application/json: schema: $ref: '#/components/schemas/upgradeMatrixList' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/errorResponse' /infra/k8s/operations/{operationId}/retry: post: tags: - Infra description: Retry K8s Cluster Operation operationId: retryClusterOperation parameters: - name: operationId in: path required: true style: simple explode: false schema: type: string responses: "200": description: Successfully restarted cluster operation content: application/json: schema: $ref: '#/components/schemas/clusterAPIResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errorResponse' /infra/k8s/operations/{operationId}/abort: post: tags: - Infra description: Abort K8s Cluster Operation operationId: abortClusterOperation parameters: - name: operationId in: path required: true style: simple explode: false schema: type: string responses: "200": description: Successfully aborted cluster operation content: application/json: schema: $ref: '#/components/schemas/clusterAPIResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errorResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/errorResponse' /infra/k8s/clusters/{id}/esxinfo: put: tags: - Infra summary: Api to sync Esx Info for Workload Clusters on demand description: Api to sync Esx Info for Workload Clusters on demand. TCA automatically syncs required ESX Info for the workload clusters but if for some reason there is a notifcation miss, then this API can be called to forcefully trigger the ESX Info Sync operationId: syncEsxInfo parameters: - name: id in: path required: true style: simple explode: false schema: type: string responses: "200": description: Successfully triggered sync of esx info for the cluster content: application/json: schema: $ref: '#/components/schemas/inline_response_200_2' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/errorResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errorResponse' components: schemas: clusterRequest: required: - clusterTemplateId - clusterType - endpointIP - hcxCloudUrl - masterNodes - name - placementParams - vmTemplate type: object properties: clusterPassword: type: string clusterTemplateId: type: string clusterType: type: string enum: - MANAGEMENT - WORKLOAD description: type: string location: $ref: '#/components/schemas/location' clusterConfig: $ref: '#/components/schemas/clusterRequest_clusterConfig' hcxCloudUrl: type: string endpointIP: type: string managementClusterId: type: string masterNodes: type: array items: $ref: '#/components/schemas/clusterRequest_masterNodes' name: pattern: '[a-z0-9]([-a-z0-9]*[a-z0-9])?' type: string placementParams: type: array items: $ref: '#/components/schemas/clusterRequest_placementParams' vmTemplate: type: string workerNodes: type: array items: $ref: '#/components/schemas/clusterRequest_workerNodes' clusterAPIResponse: type: object properties: id: type: string operationId: type: string cluster: type: object properties: id: type: string clusterName: type: string clusterType: type: string vsphereClusterName: type: string managementClusterId: type: string hcxUUID: type: string status: type: string activeTasksCount: type: integer description: Number of operations in processing or queued state on the cluster clusterTemplate: $ref: '#/components/schemas/cluster_clusterTemplate' clusterConfig: $ref: '#/components/schemas/clusterConfig' clusterId: type: string clusterUrl: type: string kubeConfig: type: string endpointIP: type: string masterNodes: maxItems: 1 minItems: 1 type: array items: $ref: '#/components/schemas/cluster_masterNodes' workerNodes: type: array items: $ref: '#/components/schemas/cluster_workerNodes' vimId: type: string error: type: string clusterConfigurations: type: object properties: cni: type: array items: $ref: '#/components/schemas/clusterConfigurations_cni' csi: type: array items: $ref: '#/components/schemas/clusterConfigurations_csi' kubernetesVersion: type: string tools: type: array items: $ref: '#/components/schemas/clusterConfigurations_tools' systemSettings: type: array items: $ref: '#/components/schemas/clusterRequest_clusterConfig_systemSettings' clusterTask: type: object properties: entityDetails: $ref: '#/components/schemas/clusterTask_entityDetails' type: type: string status: type: string progress: type: integer message: type: string startTime: type: integer request: $ref: '#/components/schemas/clusterRequest' steps: type: array items: type: object taskId: type: string nodePool: required: - cpu - labels - memory - name - networks - placementParams - replica - storage type: object properties: cloneMode: type: string enum: - fullClone - linkedClone cpu: minimum: 2 type: integer id: type: string labels: minItems: 1 type: array items: type: string memory: minimum: 2048 type: integer name: pattern: '[a-z0-9]([-a-z0-9]*[a-z0-9])?(.[a-z0-9])' type: string networks: minItems: 1 type: array items: $ref: '#/components/schemas/cluster_networks' placementParams: type: array items: $ref: '#/components/schemas/clusterRequest_placementParams' replica: minimum: 1 type: integer storage: type: integer config: $ref: '#/components/schemas/nodePool_config' status: type: string activeTasksCount: type: integer description: Number of operations in processing or queued state on the node pool nodes: type: array items: $ref: '#/components/schemas/nodePool_nodes' isNodeCustomizationDeprecated: type: boolean upgradeHistory: type: object properties: items: type: array items: $ref: '#/components/schemas/upgradeHistory_items' nodePoolList: type: object properties: items: type: array items: $ref: '#/components/schemas/nodePool' supportedVersionsList: type: object properties: items: type: array items: $ref: '#/components/schemas/supportedVersionsList_items' upgradeMatrixList: type: object properties: items: type: array items: $ref: '#/components/schemas/upgradeMatrixList_items' clusterUpgradeRequest: required: - kubernetesVersion - vmTemplate type: object properties: kubernetesVersion: type: string vmTemplate: type: string skipValidation: type: boolean description: Set to true if validation phase is to be skipped.Set to false otherwise. errorResponse: type: object properties: errors: type: array items: $ref: '#/components/schemas/error' validateResponse: type: object properties: errors: type: array items: $ref: '#/components/schemas/error' warnings: type: array items: $ref: '#/components/schemas/warning' filter: type: object properties: filter: $ref: '#/components/schemas/filter_filter' clusterSpec: required: - clusterTemplateId - clusterType - hcxCloudUrl - masterNodes - placementParams - vmTemplate type: object properties: clusterTemplateId: type: string clusterType: type: string enum: - MANAGEMENT - WORKLOAD description: type: string clusterConfig: $ref: '#/components/schemas/clusterSpec_clusterConfig' hcxCloudUrl: type: string managementClusterId: type: string masterNodes: type: array items: $ref: '#/components/schemas/clusterSpec_masterNodes' placementParams: type: array items: $ref: '#/components/schemas/clusterRequest_placementParams' vmTemplate: type: string workerNodes: type: array items: $ref: '#/components/schemas/clusterSpec_workerNodes' versionMatrixFilter: type: object properties: filter: $ref: '#/components/schemas/filter_filter' location: required: - city - cityAscii - country - latitude - longitude type: object properties: city: type: string country: type: string cityAscii: type: string latitude: type: string longitude: type: string clusterConfig: type: object properties: cni: type: array items: $ref: '#/components/schemas/clusterConfig_cni' csi: type: array items: $ref: '#/components/schemas/clusterConfig_csi' kubernetesVersion: type: string tools: type: array items: $ref: '#/components/schemas/clusterConfig_tools' systemSettings: type: array items: $ref: '#/components/schemas/clusterRequest_clusterConfig_systemSettings' error: type: object properties: code: type: string message: type: string warning: type: object properties: message: type: string inline_response_200: type: object properties: taskId: type: string inline_response_200_1: type: object properties: items: type: array items: $ref: '#/components/schemas/clusterTask' infrak8sclustersquery_filter: type: object properties: clusterType: type: string status: type: string body: type: object properties: filter: $ref: '#/components/schemas/infrak8sclustersquery_filter' body_1: required: - clusterPassword - existingClusterPassword type: object properties: existingClusterPassword: type: string clusterPassword: type: string inline_response_200_2: type: object properties: jobId: type: string clusterRequest_clusterConfig_properties: type: object properties: serverIP: type: string description: NFS Server IP Address. Valid only if type is nfs_client (Mandatory) mountPath: type: string description: Mount Path of NFS Server. Valid only if type is nfs_client (Mandatory) datastoreUrl: type: string description: | Datastore Url for vSphere CSI. If no datastore is provided master node datastore is considered. Valid only if type is vsphere-csi (Optional) clusterRequest_clusterConfig_csi: type: object properties: name: type: string enum: - nfs_client - vsphere-csi properties: $ref: '#/components/schemas/clusterRequest_clusterConfig_properties' clusterRequest_clusterConfig_properties_1: type: object properties: extensionId: type: string password: type: string type: type: string enum: - extension - repo url: type: string username: type: string clusterRequest_clusterConfig_tools: required: - name - properties type: object properties: name: type: string enum: - harbor properties: $ref: '#/components/schemas/clusterRequest_clusterConfig_properties_1' clusterRequest_clusterConfig_properties_2: type: object properties: host: type: string port: minimum: 0 type: integer protocol: type: string enum: - udp - tcp clusterRequest_clusterConfig_systemSettings: required: - name - properties type: object properties: name: type: string enum: - syslog properties: $ref: '#/components/schemas/clusterRequest_clusterConfig_properties_2' clusterRequest_clusterConfig: type: object properties: csi: type: array items: $ref: '#/components/schemas/clusterRequest_clusterConfig_csi' tools: type: array items: $ref: '#/components/schemas/clusterRequest_clusterConfig_tools' systemSettings: type: array items: $ref: '#/components/schemas/clusterRequest_clusterConfig_systemSettings' clusterRequest_networks: required: - label - networkName type: object properties: label: type: string networkName: type: string nameservers: type: array items: type: string clusterRequest_placementParams: required: - name - type type: object properties: name: type: string type: type: string clusterRequest_masterNodes: required: - name type: object properties: name: pattern: '[a-z0-9]([-a-z0-9]*[a-z0-9])?(.[a-z0-9])' type: string networks: minItems: 1 type: array items: $ref: '#/components/schemas/clusterRequest_networks' placementParams: type: array items: $ref: '#/components/schemas/clusterRequest_placementParams' clusterRequest_workerNodes: required: - name type: object properties: name: pattern: '[a-z0-9]([-a-z0-9]*[a-z0-9])?(.[a-z0-9])' type: string networks: type: array items: $ref: '#/components/schemas/clusterRequest_networks' placementParams: type: array items: $ref: '#/components/schemas/clusterRequest_placementParams' cluster_clusterTemplate: type: object properties: name: type: string version: type: string id: type: string cluster_masterNodes: required: - name - replica type: object properties: cpu: minimum: 1 type: integer memory: minimum: 2048 type: integer name: pattern: '[a-z0-9]([-a-z0-9]*[a-z0-9])?(.[a-z0-9])' type: string networks: minItems: 1 type: array items: $ref: '#/components/schemas/clusterRequest_networks' storage: minimum: 20 type: integer replica: minimum: 1 type: integer labels: type: array items: type: string cloneMode: type: string enum: - fullClone - linkedClone cluster_networks: required: - networkName type: object properties: label: type: string networkName: type: string nameservers: type: array items: type: string cluster_config_cpuManagerPolicy_properties_kubeReserved: type: object properties: cpu: minimum: 1 type: integer memoryInGiB: minimum: 1 type: integer cluster_config_cpuManagerPolicy_properties: type: object properties: kubeReserved: $ref: '#/components/schemas/cluster_config_cpuManagerPolicy_properties_kubeReserved' systemReserved: $ref: '#/components/schemas/cluster_config_cpuManagerPolicy_properties_kubeReserved' cluster_config_cpuManagerPolicy: type: object properties: type: type: string enum: - kubernetes policy: type: string enum: - static - default properties: $ref: '#/components/schemas/cluster_config_cpuManagerPolicy_properties' cluster_config_healthCheck_unhealthyConditions: required: - status - timeout - type type: object properties: type: type: string enum: - Ready - MemoryPressure - DiskPressure - PIDPressure - NetworkUnavailable status: type: string enum: - "True" - "False" - Unknown timeout: type: string cluster_config_healthCheck: required: - unhealthyConditions type: object properties: nodeStartupTimeout: type: string description: | NodeStartupTimeout determines how long a MachineHealthCheck should wait for a Node to join the cluster, before considering a Machine unhealthy unhealthyConditions: minItems: 1 type: array description: | Conditions to check on Nodes for matched Machines, if any condition is matched for the duration of its timeout, the Machine is considered unhealthy items: $ref: '#/components/schemas/cluster_config_healthCheck_unhealthyConditions' cluster_config: type: object properties: cpuManagerPolicy: $ref: '#/components/schemas/cluster_config_cpuManagerPolicy' healthCheck: $ref: '#/components/schemas/cluster_config_healthCheck' cluster_workerNodes: required: - name - replica type: object properties: cpu: minimum: 1 type: integer memory: minimum: 2048 type: integer name: pattern: '[a-z0-9]([-a-z0-9]*[a-z0-9])?(.[a-z0-9])' type: string networks: minItems: 1 type: array items: $ref: '#/components/schemas/cluster_networks' storage: minimum: 20 type: integer replica: minimum: 1 type: integer labels: type: array items: type: string cloneMode: type: string enum: - fullClone - linkedClone config: $ref: '#/components/schemas/cluster_config' clusterConfigurations_cni: required: - name type: object properties: name: type: string description: | For workload clusters, one of antrea or calico must be present. enum: - calico - multus - antrea - whereabouts properties: type: object clusterConfigurations_properties: type: object properties: name: type: string description: | Name of the storage class. Defaults to 'vsphere-sc' for type vsphere-csi. Defaults to 'nfs-client' for type nfs_client. Input can be given only if type is vsphere-csi (Optional). isDefault: type: boolean description: | Default storage class in k8s for pvc claim. Defaults to True for type vsphere-csi. Defaults to False for type nfs_client. Only one type of storage class can be default storage class. (Optional) serverIP: type: string description: NFS Server IP Address. Valid only if type is nfs_client (Mandatory) mountPath: type: string description: Mount Path of NFS Server. Valid only if type is nfs_client (Mandatory) datastoreUrl: type: string description: | Datastore Url for vSphere CSI. If no datastore is provided master node datastore is considered. Valid only if type is vsphere-csi (Optional) timeout: type: string description: | Timeout of all calls to CSI driver. If not speified default value is 300 seconds. Valid only if type is vsphere-csi (Optional). clusterConfigurations_csi: required: - name type: object properties: name: type: string enum: - vsphere-csi - nfs_client properties: $ref: '#/components/schemas/clusterConfigurations_properties' clusterConfigurations_tools: required: - name type: object properties: name: type: string enum: - helm - harbor - nodeconfig-operator - vmconfig-operator version: type: string properties: type: object clusterTask_entityDetails: type: object properties: id: type: string type: type: string name: type: string nodePool_config_healthCheck: required: - unhealthyConditions type: object properties: nodeStartupTimeout: type: string description: | NodeStartupTimeout determines how long a MachineHealthCheck should wait for a Node to join the cluster, before considering a Machine unhealthy default: 20m0s unhealthyConditions: minItems: 1 type: array description: | Conditions to check on Nodes for matched Machines, if any condition is matched for the duration of its timeout, the Machine is considered unhealthy items: $ref: '#/components/schemas/cluster_config_healthCheck_unhealthyConditions' nodePool_config: type: object properties: cpuManagerPolicy: $ref: '#/components/schemas/cluster_config_cpuManagerPolicy' healthCheck: $ref: '#/components/schemas/nodePool_config_healthCheck' nodePool_nodes: type: object properties: ip: type: string vmName: type: string upgradeHistory_items: type: object properties: clusterId: type: string oldKubernetesVersion: type: string newKubernetesVersion: type: string status: type: string upgradedOn: type: string supportedVersionsList_items: type: object properties: clusterType: type: string supportedVersions: type: array items: type: object upgradeMatrixList_items: type: object properties: clusterType: type: string version: type: string supportedUpgradeVersions: type: array items: type: string filter_filter: type: object properties: clusterType: type: string versions: type: array items: type: string clusterSpec_clusterConfig_properties: type: object properties: serverIP: type: string mountPath: type: string datastoreUrl: type: string clusterSpec_clusterConfig_csi: type: object properties: name: type: string enum: - nfs_client - vsphere-csi properties: $ref: '#/components/schemas/clusterSpec_clusterConfig_properties' clusterSpec_clusterConfig_properties_1: type: object properties: extensionId: type: string type: type: string enum: - extension - repo url: type: string username: type: string clusterSpec_clusterConfig_tools: required: - name - properties type: object properties: name: type: string enum: - harbor properties: $ref: '#/components/schemas/clusterSpec_clusterConfig_properties_1' clusterSpec_clusterConfig: type: object properties: csi: type: array items: $ref: '#/components/schemas/clusterSpec_clusterConfig_csi' tools: type: array items: $ref: '#/components/schemas/clusterSpec_clusterConfig_tools' systemSettings: type: array items: $ref: '#/components/schemas/clusterRequest_clusterConfig_systemSettings' clusterSpec_masterNodes: required: - name type: object properties: name: type: string networks: minItems: 1 type: array items: $ref: '#/components/schemas/clusterRequest_networks' placementParams: type: array items: $ref: '#/components/schemas/clusterRequest_placementParams' clusterSpec_workerNodes: required: - name type: object properties: name: type: string networks: type: array items: $ref: '#/components/schemas/clusterRequest_networks' placementParams: type: array items: $ref: '#/components/schemas/clusterRequest_placementParams' clusterConfig_cni: required: - name type: object properties: name: type: string enum: - calico - multus - whereabouts - antrea properties: type: object clusterConfig_properties: type: object properties: name: type: string description: | Name of the storage class. Defaults to 'vsphere-sc' for type vsphere-csi. Defaults to 'nfs-client' for type nfs_client. isDefault: type: boolean description: Default storage class in k8s for pvc claim. serverIP: type: string description: NFS Server IP Address. Valid only if type is nfs_client (Mandatory) mountPath: type: string description: Mount Path of NFS Server. Valid only if type is nfs_client (Mandatory) datastoreUrl: type: string description: | Datastore Url for vSphere CSI. If no datastore is provided master node datastore is considered. Valid only if type is vsphere-csi (Optional) timeout: type: string description: | Timeout of all calls to CSI driver. If not speified default value is 300 seconds. Valid only if type is vsphere-csi (Optional). clusterConfig_csi: required: - name type: object properties: name: type: string enum: - vsphere-csi - nfs_client properties: $ref: '#/components/schemas/clusterConfig_properties' clusterConfig_tools: required: - name type: object properties: name: type: string description: Specifying any version of helm is deprecated from 1.9. It is recommend to use TCA certified helm versions. enum: - helm - harbor - nodeconfig-operator - vmconfig-operator version: type: string properties: type: object responses: InternalServerError: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/errorResponse' BadRequest: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errorResponse' securitySchemes: x-hm-authorization: type: apiKey description: Obtained from /hybridity/api/session name: x-hm-authorization in: header