Spectro Cloud · Schema
v1OverlordCloudStackCloudConfig
CompanyInfrastructureKubernetesCloud-NativeCluster ManagementEdge ComputingMulti-CloudDevOpsAI Infrastructure
Properties
| Name | Type | Description |
|---|---|---|
| clusterConfig | object | |
| clusterProfiles | array | Cluster profiles pack configuration for private gateway cluster |
| clusterSettings | object | clusterSettings is the generic configuration related to a cluster like OS patch, Rbac, Namespace allocation |
| machineConfig | object | |
| size | integer | size of the pool, number of machines |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/spectro-cloud/main/json-schema/spectro-cloud-v1-overlord-cloud-stack-cloud-config-schema.json",
"title": "v1OverlordCloudStackCloudConfig",
"x-generated": "2026-10-04",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/spectro-cloud-overlords-api-openapi.yml#/components/schemas/v1OverlordCloudStackCloudConfig",
"properties": {
"clusterConfig": {
"$ref": "#/$defs/v1CloudStackClusterConfig"
},
"clusterProfiles": {
"description": "Cluster profiles pack configuration for private gateway cluster",
"items": {
"$ref": "#/$defs/v1SpectroClusterProfileEntity"
},
"type": "array"
},
"clusterSettings": {
"$ref": "#/$defs/v1ClusterConfigEntity",
"description": "clusterSettings is the generic configuration related to a cluster like OS patch, Rbac, Namespace allocation"
},
"machineConfig": {
"$ref": "#/$defs/v1CloudStackMachineConfigEntity"
},
"size": {
"description": "size of the pool, number of machines",
"format": "int32",
"type": "integer"
}
},
"$defs": {
"v1CloudStackClusterConfig": {
"description": "Cluster level configuration for CloudStack cloud, same for all machinepools",
"properties": {
"controlPlaneEndpoint": {
"description": "Endpoint IP to be used for API server, should only be enabled for static CloudStack network",
"type": "string"
},
"overrideClusterAPIConfig": {
"description": "YAML override for CAPI properties at cluster level.\nOverrides pack-level and Palette-managed values.\n",
"type": "string"
},
"project": {
"$ref": "#/$defs/v1CloudStackResource",
"description": "Project name for the cluster (optional)"
},
"sshKeyName": {
"description": "SSH Key name for accessing cluster nodes",
"type": "string"
},
"syncWithCKS": {
"description": "SyncWithCKS determines if an externalManaged CKS cluster should be created (optional)",
"type": "boolean"
},
"zones": {
"description": "Multiple zones for multi-AZ deployments. If only one zone is specified, it will be treated as single-zone deployment",
"items": {
"$ref": "#/$defs/v1CloudStackZoneSpec"
},
"type": "array"
}
},
"type": "object"
},
"v1CloudStackMachineConfigEntity": {
"properties": {
"instanceConfig": {
"$ref": "#/$defs/v1InstanceConfig",
"description": "Instance Configuration"
},
"networks": {
"description": "Network configuration",
"items": {
"$ref": "#/$defs/v1CloudStackNetworkConfig"
},
"type": "array"
},
"offering": {
"$ref": "#/$defs/v1CloudStackResource"
},
"template": {
"$ref": "#/$defs/v1CloudStackResource",
"description": "CloudStack template override for this machine pool. If not specified, inherits cluster default from profile."
}
},
"required": [
"offering"
],
"type": "object"
},
"v1CloudStackNetworkConfig": {
"description": "Network configuration for CloudStack instances",
"properties": {
"id": {
"description": "Network id",
"type": "string"
},
"name": {
"description": "Network name",
"type": "string"
}
},
"type": "object"
},
"v1CloudStackNetworkSpec": {
"description": "Enhanced network configuration for CloudStack",
"properties": {
"gateway": {
"description": "Gateway IP address for the network",
"type": "string"
},
"id": {
"description": "Network id",
"type": "string"
},
"name": {
"description": "Network name",
"type": "string"
},
"netmask": {
"description": "Network mask for the network",
"type": "string"
},
"offering": {
"description": "Network offering name",
"type": "string"
},
"routingMode": {
"description": "Routing mode for the network",
"type": "string"
},
"type": {
"description": "Network type: Isolated, Shared, etc.",
"type": "string"
},
"vpc": {
"$ref": "#/$defs/v1CloudStackVPCSpec",
"description": "VPC configuration (optional, for VPC networks)"
}
},
"type": "object"
},
"v1CloudStackResource": {
"description": "Cloud stack resource information",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"type": "object"
},
"v1CloudStackVPCSpec": {
"description": "VPC configuration for CloudStack networks",
"properties": {
"cidr": {
"description": "CIDR block for the VPC",
"type": "string"
},
"id": {
"description": "VPC id",
"type": "string"
},
"name": {
"description": "VPC name",
"type": "string"
},
"offering": {
"description": "VPC offering name",
"type": "string"
}
},
"type": "object"
},
"v1CloudStackZoneSpec": {
"description": "CloudStack zone with its network configuration",
"properties": {
"id": {
"description": "Zone Id",
"type": "string"
},
"name": {
"description": "Zone name",
"type": "string"
},
"network": {
"$ref": "#/$defs/v1CloudStackNetworkSpec",
"description": "Network configuration specific to this zone"
}
},
"type": "object"
},
"v1ClusterConfigEntity": {
"properties": {
"clusterMetaAttribute": {
"description": "ClusterMetaAttribute can be used to set additional cluster metadata information.",
"type": "string"
},
"controlPlaneHealthCheckTimeout": {
"type": "string"
},
"hostClusterConfig": {
"$ref": "#/$defs/v1HostClusterConfig"
},
"hyperShiftConfig": {
"$ref": "#/$defs/v1HyperShiftConfig"
},
"lifecycleConfig": {
"$ref": "#/$defs/v1LifecycleConfig"
},
"location": {
"$ref": "#/$defs/v1ClusterLocation"
},
"machineManagementConfig": {
"$ref": "#/$defs/v1MachineManagementConfig"
},
"resources": {
"$ref": "#/$defs/v1ClusterResourcesEntity"
},
"timezone": {
"description": "Timezone of a cluster in IANA standard format. It is mandatory field if cluster is deployed through template, else it is optional",
"type": "string"
},
"updateWorkerPoolsInParallel": {
"type": "boolean"
}
},
"type": "object"
},
"v1ClusterDeploymentType": {
"description": "Defines the deployment type for HyperShift-enabled clusters.\n- 'hypershift': Indicates a HyperShift management cluster that hosts control planes for other clusters.\n- 'openshift': Indicates an OpenShift cluster whose control plane is hosted on a HyperShift management cluster.",
"enum": [
"hypershift",
"openshift"
],
"type": "string"
},
"v1ClusterLocation": {
"description": "Cluster location information",
"properties": {
"countryCode": {
"description": "country code for cluster location",
"type": "string"
},
"countryName": {
"description": "country name for cluster location",
"type": "string"
},
"geoLoc": {
"$ref": "#/$defs/v1GeolocationLatlong"
},
"regionCode": {
"description": "region code for cluster location",
"type": "string"
},
"regionName": {
"description": "region name for cluster location",
"type": "string"
}
},
"type": "object"
},
"v1ClusterNamespaceResourceAllocation": {
"description": "Cluster namespace resource allocation",
"properties": {
"cpuCores": {
"type": "number",
"exclusiveMinimum": 0
},
"gpuConfig": {
"$ref": "#/$defs/v1GpuConfig"
},
"memoryMiB": {
"type": "number",
"exclusiveMinimum": 0
}
}
},
"v1ClusterNamespaceResourceInputEntity": {
"description": "Cluster Namespace resource definition",
"properties": {
"metadata": {
"$ref": "#/$defs/v1ObjectMetaUpdateEntity"
},
"spec": {
"$ref": "#/$defs/v1ClusterNamespaceSpec"
}
},
"type": "object"
},
"v1ClusterNamespaceSpec": {
"description": "Cluster namespace spec",
"properties": {
"isRegex": {
"type": "boolean",
"x-omitempty": false
},
"relatedObject": {
"$ref": "#/$defs/v1RelatedObject"
},
"resourceAllocation": {
"$ref": "#/$defs/v1ClusterNamespaceResourceAllocation"
}
}
},
"v1ClusterRbacBinding": {
"description": "Cluster RBAC binding",
"properties": {
"namespace": {
"type": "string"
},
"role": {
"$ref": "#/$defs/v1ClusterRoleRef"
},
"subjects": {
"items": {
"$ref": "#/$defs/v1ClusterRbacSubjects"
},
"type": "array",
"uniqueItems": true
},
"type": {
"enum": [
"RoleBinding",
"ClusterRoleBinding"
],
"type": "string"
}
},
"type": "object"
},
"v1ClusterRbacInputEntity": {
"description": "Cluster RBAC role binding defintion",
"properties": {
"metadata": {
"$ref": "#/$defs/v1ObjectMetaUpdateEntity"
},
"spec": {
"$ref": "#/$defs/v1ClusterRbacSpec"
}
},
"type": "object"
},
"v1ClusterRbacSpec": {
"description": "Cluster RBAC spec",
"properties": {
"bindings": {
"items": {
"$ref": "#/$defs/v1ClusterRbacBinding"
},
"type": "array",
"uniqueItems": true
},
"isSystem": {
"default": false,
"description": "Set to true when the binding is created automatically by the system, rather than manually by the user",
"type": "boolean"
},
"relatedObject": {
"$ref": "#/$defs/v1RelatedObject"
}
},
"type": "object"
},
"v1ClusterRbacSubjects": {
"description": "Cluster role ref",
"properties": {
"name": {
"type": "string"
},
"namespace": {
"type": "string"
},
"type": {
"enum": [
"User",
"Group",
"ServiceAccount"
],
"type": "string"
}
},
"type": "object"
},
"v1ClusterResourcesEntity": {
"properties": {
"namespaces": {
"items": {
"$ref": "#/$defs/v1ClusterNamespaceResourceInputEntity"
},
"type": "array",
"uniqueItems": true
},
"rbacs": {
"items": {
"$ref": "#/$defs/v1ClusterRbacInputEntity"
},
"type": "array",
"uniqueItems": true
}
},
"type": "object"
},
"v1ClusterRoleRef": {
"description": "Cluster role ref",
"properties": {
"kind": {
"enum": [
"Role",
"ClusterRole"
],
"type": "string"
},
"name": {
"type": "string"
}
},
"type": "object"
},
"v1GeolocationLatlong": {
"description": "Geolocation Latlong entity",
"properties": {
"latitude": {
"description": "Latitude of a resource",
"format": "float64",
"type": "number",
"x-omitempty": false
},
"longitude": {
"description": "Longitude of a resource",
"format": "float64",
"type": "number",
"x-omitempty": false
}
},
"type": "object"
},
"v1GpuConfig": {
"description": "GPU configuration for resource allocation",
"properties": {
"limit": {
"description": "GPU resource limit",
"format": "int32",
"minimum": -1,
"type": "integer",
"x-omitempty": false
},
"provider": {
"default": "nvidia",
"description": "GPU provider (only nvidia is supported currently)",
"enum": [
"nvidia"
],
"type": "string"
}
}
},
"v1HostClusterConfig": {
"properties": {
"clusterEndpoint": {
"$ref": "#/$defs/v1HostClusterEndpoint",
"description": "host cluster configuration"
},
"clusterGroup": {
"$ref": "#/$defs/v1ObjectReference",
"description": "cluster group reference"
},
"hostCluster": {
"$ref": "#/$defs/v1ObjectReference",
"description": "host cluster reference"
},
"isHostCluster": {
"default": false,
"description": "is enabled as host cluster",
"type": "boolean",
"x-omitempty": false
}
}
},
"v1HostClusterEndpoint": {
"properties": {
"config": {
"$ref": "#/$defs/v1HostClusterEndpointConfig"
},
"type": {
"description": "is enabled as host cluster",
"enum": [
"Ingress",
"LoadBalancer"
],
"type": "string"
}
}
},
"v1HostClusterEndpointConfig": {
"properties": {
"ingressConfig": {
"$ref": "#/$defs/v1IngressConfig"
},
"loadBalancerConfig": {
"$ref": "#/$defs/v1LoadBalancerConfig"
}
}
},
"v1HyperShiftConfig": {
"description": "HyperShiftConfig defines the configuration for HyperShift and OpenShift clusters.\nThis configuration is only applicable to MaaS clusters.\n",
"properties": {
"clusterDeploymentType": {
"$ref": "#/$defs/v1ClusterDeploymentType"
},
"hostClusterUid": {
"description": "The UID of the host HyperShift cluster.\nThis field is required only when clusterDeploymentType is set to 'openshift'.\nMust reference a valid HyperShift cluster.\n",
"type": "string"
}
},
"type": "object"
},
"v1IngressConfig": {
"description": "Ingress configuration for exposing the virtual cluster's kube-apiserver",
"properties": {
"host": {
"type": "string"
},
"port": {
"format": "int64",
"type": "integer"
}
}
},
"v1InstanceConfig": {
"properties": {
"category": {
"type": "string"
},
"cpuSet": {
"format": "int64",
"type": "integer"
},
"diskGiB": {
"format": "int64",
"type": "integer"
},
"memoryMiB": {
"description": "MemoryMiB is the size of a virtual machine's memory, in MiB",
"format": "int64",
"type": "integer"
},
"name": {
"type": "string"
},
"numCPUs": {
"description": "NumCPUs is the number of virtual processors in a virtual machine",
"format": "int32",
"type": "integer"
}
}
},
"v1LifecycleConfig": {
"properties": {
"pause": {
"default": false,
"description": "enable pause life cycle config",
"type": "boolean",
"x-omitempty": false
}
}
},
"v1LoadBalancerConfig": {
"description": "Load balancer configuration for exposing the virtual cluster's kube-apiserver",
"properties": {
"externalIPs": {
"items": {
"type": "string"
},
"type": "array"
},
"externalTrafficPolicy": {
"type": "string"
},
"loadBalancerSourceRanges": {
"items": {
"type": "string"
},
"type": "array"
}
}
},
"v1MachineManagementConfig": {
"properties": {
"osPatchConfig": {
"$ref": "#/$defs/v1OsPatchConfig",
"description": "OS patch config contains properties to patch node os with latest security packages. \nIf OsPatchConfig is not provided then node os will not be patched with latest security updates.\nNote: For edge based cluster (like edge-native type) the osPatchConfig is NOT applicable, the values will be ignored.\n"
}
},
"type": "object"
},
"v1ManifestRefUpdateEntity": {
"description": "Manifest update request payload",
"properties": {
"content": {
"description": "Manifest content in yaml",
"type": "string"
},
"name": {
"description": "Manifest name",
"type": "string"
},
"uid": {
"description": "Manifest uid",
"type": "string"
}
},
"required": [
"name"
]
},
"v1ObjectMetaUpdateEntity": {
"description": "ObjectMeta update entity with uid as input",
"properties": {
"annotations": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"labels": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"name": {
"type": "string"
},
"uid": {
"type": "string"
}
},
"type": "object"
},
"v1ObjectReference": {
"description": "ObjectReference contains enough information to let you inspect or modify the referred object.",
"properties": {
"kind": {
"description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
"type": "string"
},
"uid": {
"description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids",
"type": "string"
}
},
"type": "object"
},
"v1OsPatchConfig": {
"properties": {
"onDemandPatchAfter": {
"$ref": "#/$defs/v1Time",
"description": "OnDemandPatchAfter is the desired time for one time on-demand patch"
},
"patchOnBoot": {
"description": "PatchOnBoot indicates need to do patch when node first boot up, only once",
"type": "boolean",
"x-omitempty": false
},
"rebootIfRequired": {
"description": "Reboot once the OS patch is applied",
"type": "boolean",
"x-omitempty": false
},
"schedule": {
"description": "The schedule at which security patches will be applied to OS. Schedule should be in Cron format, see https://en.wikipedia.org/wiki/Cron for more help.",
"type": "string"
}
},
"type": "object"
},
"v1PackType": {
"default": "spectro",
"enum": [
"spectro",
"helm",
"manifest",
"oci"
],
"type": "string"
},
"v1PackValuesEntity": {
"description": "Pack values entity to refer the existing pack for the values override",
"properties": {
"manifests": {
"description": "Pack manifests are additional content as part of the profile",
"items": {
"$ref": "#/$defs/v1ManifestRefUpdateEntity"
},
"type": "array"
},
"name": {
"description": "Pack name",
"type": "string"
},
"tag": {
"description": "Pack version tag",
"type": "string"
},
"type": {
"$ref": "#/$defs/v1PackType"
},
"values": {
"description": "Pack values represents the values.yaml used as input parameters either Params OR Values should be used, not both If both applied at the same time, will only use Values",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"v1RelatedObject": {
"description": "Object for which the resource is related",
"properties": {
"kind": {
"enum": [
"spectrocluster",
"machine",
"cloudconfig",
"clusterprofile",
"pack",
"appprofile",
"appdeployment",
"edgehost"
],
"type": "string"
},
"name": {
"type": "string"
},
"uid": {
"type": "string"
}
},
"type": "object"
},
"v1SpectroClusterProfileEntity": {
"description": "Cluster profile request payload",
"properties": {
"packValues": {
"description": "Cluster profile packs array",
"items": {
"$ref": "#/$defs/v1PackValuesEntity"
},
"type": "array",
"uniqueItems": true
},
"replaceWithProfile": {
"description": "Cluster profile uid to be replaced with new profile",
"type": "string"
},
"uid": {
"description": "Cluster profile uid",
"type": "string"
},
"variables": {
"items": {
"$ref": "#/$defs/v1SpectroClusterVariable"
},
"type": "array"
}
},
"type": "object"
},
"v1SpectroClusterVariable": {
"description": "Variable with value which will be used within the packs of cluster profile",
"properties": {
"name": {
"description": "Variable name",
"type": "string"
},
"value": {
"description": "Actual value of the variable to be used within the cluster",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"v1Time": {
"description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.",
"format": "date-time",
"type": "string"
}
}
}
Work with this as data
Every JSON Schema 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 schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/spectro-cloud-v1-overlord-cloud-stack-cloud-config"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.