@mistio/mist-form
Version:
A Webcomponent that renders a form defined by a JSONSchema & an optional UISchema spec
1,637 lines • 126 kB
JSON
{
"components": {
"callbacks": {},
"examples": {},
"headers": {},
"links": {},
"parameters": {
"atParam": {
"name": "at",
"description": "Limit results by specific datetime. Return resources created before or at, or deleted after or at, given datetime.",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
},
"examples": {
"Return resources created before or deleted after `2021-07-21T17:32:28Z`": {
"value": "2021-07-21T17:32:28Z"
}
}
}
},
"requestBodies": {},
"responses": {},
"schemas": {
"MachineState": {
"type": "string",
"enum": ["running", "starting", "stopping", "stopped", "pending", "suspended", "terminated", "error", "rebooting", "paused", "reconfiguring", "unknown", "updating", "migrating", "normal", "succeeded", "failed"]
},
"SupportedProviders": {
"type": "string",
"enum": ["amazon", "azure", "google", "alibaba", "cloudsigma", "equinix", "ibm", "digitalocean", "linode", "rackspace", "maxihost", "vultr", "openstack", "onapp", "vsphere", "vexxhost", "kvm", "lxd", "docker", "kubevirt", "kubernetes", "openshift", "other"]
},
"ResponseMetadata": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total items matching the query"
},
"returned": {
"type": "integer",
"description": "Number of items in response"
},
"sort": {
"type": "string",
"description": "Sort order of results"
},
"start": {
"type": "integer",
"description": "Index of first response item in total matching items"
}
}
},
"ListCloudsResponse": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Cloud"
}
},
"meta": {
"$ref": "#/components/schemas/ResponseMetadata"
}
}
},
"GetCloudResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Cloud"
},
"meta": {
"$ref": "#/components/schemas/ResponseMetadata"
}
}
},
"Cloud": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"provider": {
"$ref": "#/components/schemas/SupportedProviders"
},
"config": {
"type": "object"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
},
"tags": {
"type": "object"
},
"created_by": {
"type": "string"
},
"owned_by": {
"type": "string"
}
}
},
"AddCloudRequest": {
"allOf": [{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the cloud to add"
},
"provider": {
"$ref": "#/components/schemas/SupportedProviders"
}
},
"required": ["name", "provider"]
}, {
"oneOf": [{
"$ref": "#/components/schemas/AmazonCloudRequest"
}, {
"$ref": "#/components/schemas/AzureCloudRequest"
}, {
"$ref": "#/components/schemas/GoogleCloudRequest"
}, {
"$ref": "#/components/schemas/AlibabaCloudRequest"
}, {
"$ref": "#/components/schemas/CloudSigmaCloudRequest"
}, {
"$ref": "#/components/schemas/EquinixCloudRequest"
}, {
"$ref": "#/components/schemas/IbmCloudRequest"
}, {
"$ref": "#/components/schemas/DigitaloceanCloudRequest"
}, {
"$ref": "#/components/schemas/LinodeCloudRequest"
}, {
"$ref": "#/components/schemas/RackspaceCloudRequest"
}, {
"$ref": "#/components/schemas/MaxihostCloudRequest"
}, {
"$ref": "#/components/schemas/VultrCloudRequest"
}, {
"$ref": "#/components/schemas/OpenstackCloudRequest"
}, {
"$ref": "#/components/schemas/OnappCloudRequest"
}, {
"$ref": "#/components/schemas/VsphereCloudRequest"
}, {
"$ref": "#/components/schemas/KvmCloudRequest"
}, {
"$ref": "#/components/schemas/LxdCloudRequest"
}, {
"$ref": "#/components/schemas/DockerCloudRequest"
}, {
"$ref": "#/components/schemas/KubernetesCloudRequest"
}, {
"$ref": "#/components/schemas/KubevirtCloudRequest"
}, {
"$ref": "#/components/schemas/OpenshiftCloudRequest"
}, {
"$ref": "#/components/schemas/OtherCloudRequest"
}],
"discriminator": {
"propertyName": "provider",
"mapping": {
"amazon": "#/components/schemas/AmazonCloudRequest",
"azure": "#/components/schemas/AzureCloudRequest",
"google": "#/components/schemas/GoogleCloudRequest",
"cloudsigma": "#/components/schemas/CloudSigmaCloudRequest",
"alibaba": "#/components/schemas/AlibabaCloudRequest",
"equinix": "#/components/schemas/EquinixCloudRequest",
"ibm": "#/components/schemas/IbmCloudRequest",
"linode": "#/components/schemas/LinodeCloudRequest",
"rackspace": "#/components/schemas/RackspaceCloudRequest",
"maxihost": "#/components/schemas/MaxihostCloudRequest",
"vultr": "#/components/schemas/VultrCloudRequest",
"openstack": "#/components/schemas/OpenstackCloudRequest",
"onapp": "#/components/schemas/OnappCloudRequest",
"vsphere": "#/components/schemas/VsphereCloudRequest",
"kvm": "#/components/schemas/KvmCloudRequest",
"lxd": "#/components/schemas/LxdCloudRequest",
"docker": "#/components/schemas/DockerCloudRequest",
"kubernetes": "#/components/schemas/KubernetesCloudRequest",
"kubevirt": "#/components/schemas/KubevirtCloudRequest",
"openshift": "#/components/schemas/OpenshiftCloudRequest",
"other": "#/components/schemas/OtherCloudRequest"
}
}
}],
"example": {
"name": "my-cloud",
"provider": "google",
"credentials": {
"projectId": "projectId",
"privateKey": "privateKey",
"email": "email"
}
}
},
"EditCloudRequest_anyOf": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Updated name"
}
},
"additionalProperties": false,
"required": ["name"]
},
"EditCloudRequest": {
"anyOf": [{
"$ref": "#/components/schemas/EditCloudRequest_anyOf"
}, {
"allOf": [{
"type": "object",
"properties": {
"provider": {
"$ref": "#/components/schemas/SupportedProviders"
}
},
"required": ["provider"]
}, {
"oneOf": [{
"$ref": "#/components/schemas/AmazonCloudRequest"
}, {
"$ref": "#/components/schemas/AzureCloudRequest"
}, {
"$ref": "#/components/schemas/GoogleCloudRequest"
}, {
"$ref": "#/components/schemas/AlibabaCloudRequest"
}, {
"$ref": "#/components/schemas/CloudSigmaCloudRequest"
}, {
"$ref": "#/components/schemas/EquinixCloudRequest"
}, {
"$ref": "#/components/schemas/IbmCloudRequest"
}, {
"$ref": "#/components/schemas/DigitaloceanCloudRequest"
}, {
"$ref": "#/components/schemas/LinodeCloudRequest"
}, {
"$ref": "#/components/schemas/RackspaceCloudRequest"
}, {
"$ref": "#/components/schemas/MaxihostCloudRequest"
}, {
"$ref": "#/components/schemas/VultrCloudRequest"
}, {
"$ref": "#/components/schemas/OpenstackCloudRequest"
}, {
"$ref": "#/components/schemas/OnappCloudRequest"
}, {
"$ref": "#/components/schemas/VsphereCloudRequest"
}, {
"$ref": "#/components/schemas/KvmCloudRequest"
}, {
"$ref": "#/components/schemas/LxdCloudRequest"
}, {
"$ref": "#/components/schemas/DockerCloudRequest"
}, {
"$ref": "#/components/schemas/KubernetesCloudRequest"
}, {
"$ref": "#/components/schemas/KubevirtCloudRequest"
}, {
"$ref": "#/components/schemas/OpenshiftCloudRequest"
}, {
"$ref": "#/components/schemas/OtherCloudRequest"
}],
"discriminator": {
"propertyName": "provider",
"mapping": {
"amazon": "#/components/schemas/AmazonCloudRequest",
"azure": "#/components/schemas/AzureCloudRequest",
"google": "#/components/schemas/GoogleCloudRequest",
"cloudsigma": "#/components/schemas/CloudSigmaCloudRequest",
"alibaba": "#/components/schemas/AlibabaCloudRequest",
"equinix": "#/components/schemas/EquinixCloudRequest",
"ibm": "#/components/schemas/IbmCloudRequest",
"linode": "#/components/schemas/LinodeCloudRequest",
"rackspace": "#/components/schemas/RackspaceCloudRequest",
"maxihost": "#/components/schemas/MaxihostCloudRequest",
"vultr": "#/components/schemas/VultrCloudRequest",
"openstack": "#/components/schemas/OpenstackCloudRequest",
"onapp": "#/components/schemas/OnappCloudRequest",
"vsphere": "#/components/schemas/VsphereCloudRequest",
"kvm": "#/components/schemas/KvmCloudRequest",
"lxd": "#/components/schemas/LxdCloudRequest",
"docker": "#/components/schemas/DockerCloudRequest",
"kubernetes": "#/components/schemas/KubernetesCloudRequest",
"kubevirt": "#/components/schemas/KubevirtCloudRequest",
"openshift": "#/components/schemas/OpenshiftCloudRequest",
"other": "#/components/schemas/OtherCloudRequest"
}
}
}]
}],
"example": {
"name": "my-renamed-cloud"
}
},
"CloudFeatures": {
"type": "object",
"description": "The cloud features that should be enabled",
"properties": {
"compute": {
"type": "boolean",
"default": true,
"description": "Enable compute services"
},
"dns": {
"type": "boolean",
"default": false,
"description": "Enable DNS services"
},
"container": {
"type": "boolean",
"default": false,
"description": "Enable container services"
}
}
},
"AmazonCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["amazon"]
},
"credentials": {
"$ref": "#/components/schemas/AmazonCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"AmazonCredentials": {
"type": "object",
"properties": {
"apikey": {
"type": "string",
"description": "Your AWS API key"
},
"apisecret": {
"type": "string",
"description": "Your AWS API secret"
},
"region": {
"type": "string",
"description": "Your AWS region"
}
},
"required": ["apikey", "apisecret", "region"]
},
"AzureCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["azure"]
},
"credentials": {
"$ref": "#/components/schemas/AzureCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"AzureCredentials": {
"type": "object",
"properties": {
"tenantId": {
"type": "string",
"description": "Your Azure tenant ID"
},
"subscriptionId": {
"type": "string",
"description": "Your Azure subscription ID"
},
"key": {
"type": "string",
"description": "Your Azure key"
},
"secret": {
"type": "string",
"description": "Your Azure secret"
}
},
"required": ["tenantId", "subscriptionId", "key", "secret"]
},
"GoogleCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["google"]
},
"credentials": {
"$ref": "#/components/schemas/GoogleCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"GoogleCredentials": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "The Id of your GCP project"
},
"privateKey": {
"type": "string",
"description": "Your GCP private key"
},
"email": {
"type": "string",
"description": "Your GCP client email"
}
},
"required": ["projectId", "privateKey", "email"]
},
"AlibabaCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["alibaba"]
},
"credentials": {
"$ref": "#/components/schemas/AlibabaCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"AlibabaCredentials": {
"type": "object",
"properties": {
"apikey": {
"type": "string",
"description": "Your Alibaba Cloud API key"
},
"apisecret": {
"type": "string",
"description": "Your Alibaba Cloud API secret"
},
"region": {
"type": "string",
"description": "Your Alibaba Cloud region"
}
},
"required": ["apikey", "apisecret", "region"]
},
"CloudSigmaCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["cloudsigma"]
},
"credentials": {
"$ref": "#/components/schemas/CloudSigmaCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"CloudSigmaCredentials": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "Your CloudSigma username"
},
"password": {
"type": "string",
"description": "Your CloudSigma password"
},
"region": {
"type": "string",
"description": "Your CloudSigma region"
}
},
"required": ["username", "password", "region"]
},
"EquinixCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["equinix"]
},
"credentials": {
"$ref": "#/components/schemas/EquinixCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"EquinixCredentials": {
"type": "object",
"properties": {
"apikey": {
"type": "string",
"description": "Your Equinix Metal API key"
}
},
"additionalProperties": false,
"required": ["apikey"]
},
"IbmCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["ibm"]
},
"credentials": {
"$ref": "#/components/schemas/IbmCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"IbmCredentials": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["ibm"]
},
"username": {
"type": "string",
"description": "Your IBM Cloud username"
},
"apikey": {
"type": "string",
"description": "Your IBM Cloud API key"
}
},
"required": ["apikey"]
},
"DigitaloceanCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["digitalocean"]
},
"credentials": {
"$ref": "#/components/schemas/DigitaloceanCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"DigitaloceanCredentials": {
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "Your DigitalOcean API token"
}
},
"required": ["token"]
},
"LinodeCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["linode"]
},
"credentials": {
"$ref": "#/components/schemas/LinodeCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"LinodeCredentials": {
"type": "object",
"properties": {
"apikey": {
"type": "string",
"description": "You Linode API key"
}
},
"required": ["apikey"]
},
"RackspaceCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["rackspace"]
},
"credentials": {
"$ref": "#/components/schemas/RackspaceCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"RackspaceCredentials": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["rackspace"]
},
"username": {
"type": "string",
"description": "Your Rackspace Cloud username"
},
"apikey": {
"type": "string",
"description": "Your Rackspace Cloud API key"
},
"region": {
"type": "string",
"description": "Your Rackspace Cloud region"
}
},
"required": ["username", "apikey", "region"]
},
"MaxihostCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["maxihost"]
},
"credentials": {
"$ref": "#/components/schemas/MaxihostCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"MaxihostCredentials": {
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "Your Maxihost API token"
}
},
"required": ["token"]
},
"VultrCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["vultr"]
},
"credentials": {
"$ref": "#/components/schemas/VultrCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"VultrCredentials": {
"type": "object",
"properties": {
"apikey": {
"type": "string",
"description": "Your Vultr API key"
}
},
"required": ["apikey"]
},
"OpenstackCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["openstack"]
},
"credentials": {
"$ref": "#/components/schemas/OpenstackCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"OpenstackCredentials": {
"type": "object",
"properties": {
"authUrl": {
"type": "string"
},
"user": {
"type": "string"
},
"password": {
"type": "string"
},
"tenant": {
"type": "string"
},
"domain": {
"type": "string"
},
"region": {
"type": "string"
},
"computeEndpoint": {
"type": "string"
}
},
"required": ["user", "password", "authUrl"]
},
"OnappCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["onapp"]
},
"credentials": {
"$ref": "#/components/schemas/OnappCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"OnappCredentials": {
"type": "object",
"properties": {
"authUrl": {
"type": "string"
},
"username": {
"type": "string"
},
"apikey": {
"type": "string"
},
"host": {
"type": "string"
},
"verify": {
"type": "boolean"
}
},
"required": ["username", "apikey", "host"]
},
"VsphereCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["vsphere"]
},
"credentials": {
"$ref": "#/components/schemas/VsphereCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"VsphereCredentials": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Your vSphere/vCenter host"
},
"username": {
"type": "string",
"description": "Your username"
},
"password": {
"type": "string",
"description": "Your password"
},
"ca_cert_file": {
"type": "string",
"description": "CA certificate"
}
},
"required": ["host", "username", "password"]
},
"KvmCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["kvm"]
},
"credentials": {
"$ref": "#/components/schemas/KvmCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"KvmCredentials": {
"type": "object"
},
"LxdCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["lxd"]
},
"credentials": {
"$ref": "#/components/schemas/LxdCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"LxdCredentials": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Your LXD host"
},
"port": {
"type": "string",
"description": "Your LXD port"
},
"username": {
"type": "string",
"description": "Your LXD username"
},
"password": {
"type": "string",
"description": "Your LXD password"
},
"tlsKey": {
"type": "string",
"description": "Your TLS auth key"
},
"tlsCert": {
"type": "string",
"description": "Your TLS auth certificate"
},
"tlsCaCert": {
"type": "string",
"description": "Your TLS CA certifcate"
},
"showAll": {
"type": "boolean",
"description": "Show all containers, including stopped"
}
},
"required": ["host", "port"]
},
"DockerCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["docker"]
},
"credentials": {
"$ref": "#/components/schemas/DockerCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"DockerCredentials": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Your Docker host"
},
"port": {
"type": "string",
"description": "Your Docker port"
},
"username": {
"type": "string",
"description": "Your Docker username"
},
"password": {
"type": "string",
"description": "Your Docker password"
},
"tlsKey": {
"type": "string",
"description": "Your TLS auth key"
},
"tlsCert": {
"type": "string",
"description": "Your TLS auth certificate"
},
"tlsCaCert": {
"type": "string",
"description": "Your TLS CA certifcate"
},
"showAll": {
"type": "boolean",
"description": "Show all containers, including stopped"
}
},
"required": ["host", "port"]
},
"KubevirtCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["kubevirt"]
},
"credentials": {
"$ref": "#/components/schemas/KubernetesCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"KubernetesCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["kubernetes"]
},
"credentials": {
"$ref": "#/components/schemas/KubernetesCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"OpenshiftCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["openshift"]
},
"credentials": {
"$ref": "#/components/schemas/OpenshiftCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"KubernetesCredentials": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Your Kubernetes API host"
},
"port": {
"type": "string",
"description": "Your Kubernetes API port"
},
"username": {
"type": "string",
"description": "Your Kubernetes API username"
},
"password": {
"type": "string",
"description": "Your Kubernetes API password"
},
"token": {
"type": "string",
"description": "Your Kubernetes API bearer token"
},
"tlsKey": {
"type": "string",
"description": "Your TLS auth key"
},
"tlsCert": {
"type": "string",
"description": "Your TLS auth certificate"
},
"tlsCaCert": {
"type": "string",
"description": "Your TLS CA certifcate"
},
"showAll": {
"type": "boolean",
"description": "Show all containers, including stopped"
}
},
"required": ["host", "port"]
},
"OpenshiftCredentials": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Your OpenShift API host"
},
"port": {
"type": "string",
"description": "Your OpenShift API port"
},
"username": {
"type": "string",
"description": "Your OpenShift API username"
},
"password": {
"type": "string",
"description": "Your OpenShift API password"
}
},
"required": ["host", "port", "username", "password"]
},
"OtherCloudRequest": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": ["other"]
},
"credentials": {
"$ref": "#/components/schemas/OtherCredentials"
},
"features": {
"$ref": "#/components/schemas/CloudFeatures"
}
},
"required": ["provider", "credentials"]
},
"OtherCredentials": {
"type": "object"
},
"ListClustersResponse": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Cluster"
}
},
"meta": {
"$ref": "#/components/schemas/ResponseMetadata"
}
}
},
"GetClusterResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Cluster"
},
"meta": {
"$ref": "#/components/schemas/ResponseMetadata"
}
}
},
"CreateClusterResponse": {
"type": "object",
"properties": {
"jobId": {
"type": "string"
}
}
},
"DestroyClusterResponse": {
"type": "object",
"properties": {
"jobId": {
"type": "string"
},
"cloud": {
"type": "string"
},
"cluster": {
"type": "string"
}
}
},
"Cluster": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"cloud": {
"type": "string"
},
"provider": {
"$ref": "#/components/schemas/ClusterProviders"
},
"total_nodes": {
"type": "integer"
},
"total_cpus": {
"type": "integer"
},
"total_memory": {
"type": "integer"
},
"location": {
"type": "string"
},
"credentials": {
"type": "object"
},
"config": {
"type": "object"
},
"tags": {
"type": "object"
},
"created_by": {
"type": "string"
},
"owned_by": {
"type": "string"
},
"extra": {
"type": "object"
},
"external_id": {
"type": "string"
},
"owner": {
"type": "string"
},
"state": {
"type": "string"
},
"last_seen": {
"type": "string"
},
"missing_since": {
"type": "string"
},
"created": {
"type": "string"
}
}
},
"ClusterProviders": {
"type": "string",
"enum": ["amazon", "azure", "digitalocean", "google", "kubernetes", "openshift", "linode"],
"description": "The cloud provider of the cluster"
},
"HelmChart": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": ["helm"]
},
"repo_url": {
"description": "The url of the Helm repository",
"type": "string"
},
"chart_name": {
"type": "string"
},
"release_name": {
"type": "string"
},
"namespace": {
"description": "The namespace to install the release on",
"type": "string"
},
"values": {
"description": "The contents of a Helm values.yaml file",
"type": "string"
},
"version": {
"description": "A version constraint for the chart",
"type": "string"
}
},
"required": ["repo_url", "chart_name", "release_name", "type"]
},
"KubernetesManifest": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": ["manifest"]
}
},
"required": ["type"]
},
"CreateClusterRequest": {
"allOf": [{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the cluster to create"
},
"cloud": {
"type": "string",
"description": "The cloud the cluster belongs to"
},
"provider": {
"$ref": "#/components/schemas/ClusterProviders"
},
"location": {
"type": "string",
"description": "Google specific parameter(Required).Name or ID of the location to create the cluster in"
},
"nodepools": {
"type": "array",
"items": {
"type": "object",
"properties": {
"nodes": {
"description": "The number of nodes to provision for the cluster. Defaults to 2",
"type": "integer",
"default": 2
},
"size": {
"description": "Name or ID of size to use for the nodes. If not provided, the t3.medium(EKS), e2-medium(GKE) size will be used",
"type": "string"
},
"disk_size": {
"type": "integer",
"description": "Size of the disk attached to each node, specified in GB.",
"default": 20
},
"disk_type": {
"type": "string",
"description": "Type of the disk attached to each node. Defaults to pd-standard(GKE), gp3(EKS)"
},
"preemptible": {
"type": "boolean",
"description": "Google specific parameter.Whether the nodes are created as preemptible machines. Defaults to false"
}
}
}
},
"templates": {
"type": "array",
"items": {
"allOf": [{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": ["helm", "manifest"]
}
},
"required": ["type"]
}, {
"oneOf": [{
"$ref": "#/components/schemas/HelmChart"
}, {
"$ref": "#/components/schemas/KubernetesManifest"
}],
"discriminator": {
"propertyName": "type",
"mapping": {
"helm": "#/components/schemas/HelmChart",
"manifest": "#/components/schemas/KubernetesManifest"
}
}
}]
}
},
"waiters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"namespace": {
"type": "string",
"default": "default"
},
"timeout": {
"type": "integer",
"default": 1800
}
},
"required": ["name", "type"]
}
}
},
"required": ["name"]
}],
"example": {
"name": "my-cluster",
"provider": "google",
"location": "europe-west2-b"
}
},
"ListImagesResponse": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Image"
}
},
"meta": {
"$ref": "#/components/schemas/ResponseMetadata"
}
}
},
"GetImageResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Image"
},
"meta": {
"$ref": "#/components/schemas/ResponseMetadata"
}
}
},
"Image": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"external_id": {
"type": "string"
},
"name": {
"type": "string"
},
"cloud": {
"type": "string"
},
"starred": {
"type": "boolean"
},
"os_type": {
"type": "string"
},
"tags": {
"type": "object"
},
"created_by": {
"type": "string"
},
"owned_by": {
"type": "string"
},
"extra": {
"type": "object"
}
}
},
"CreateMachineRequest": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Specify machine name",
"example": "DB mirror"
},
"provider": {
"description": "Specify cloud provider",
"$ref": "#/components/schemas/SupportedProviders"
},
"cloud": {
"type": "string",
"description": "Specify cloud to provision on"
},
"location": {
"description": "Where to provision e.g. region, datacenter, rack",
"oneOf": [{
"type": "object",
"properties": {
"prefer": {
"type": "string"
}
}
}, {
"type": "string"
}]
},
"size": {
"description": "Machine sizing spec e.g. cpu/ram/flavor",
"oneOf": [{
"type": "object",
"properties": {
"cpu": {
"type": "number",
"description": "Number of cpu cores. On container based providers this value will be used as the cpu limit. Mutually exclusive with 'search'"
},
"memory": {
"type": "integer",
"description": "Memory size in MBs. On container based providers this value will be used as the memory limit. Mutually exclusive with 'search'"
},
"search": {
"type": "string",
"description": "Name or ID of the size to select for this machine. Mutually exclusive with 'cpu' and 'memory'"
},
"prefer": {
"type": "object",
"description": "Optional properties to be used if applicable.",
"properties": {
"cpu_shares": {
"type": "integer",
"description": "Docker specific parameter. An integer value representing this container's relative CPU weight versus other containers"
},
"prefix": {
"type": "string",
"description": "A size name prefix. Used only on providers with standard sizes"
}
}
},
"accelerators": {
"description": "Google specific parameter",
"type": "object",
"properties": {
"accelerator_type": {
"type": "string",
"description": "Accelerator type to attach to this machine. e.g. 'nvidia-tesla-p100'"
},
"accelerator_count": {
"type": "integer",
"description": "The number of the accelerator cards exposed to this machine"
}
}
}
}
}, {
"type": "string",
"description": "Name or ID of the size to select for this machine"
}],
"example": "m1.small"
},
"image": {
"description": "Operating System image to boot from",
"oneOf": [{
"type": "object"
}, {
"type": "string",
"description": "Name or ID of the image to boot from"
}],
"example": "Debian"
},
"net": {
"description": "Specify network configuration parameters",
"anyOf": [{
"$ref": "#/components/schemas/AlibabaNet"
}, {
"$ref": "#/components/schemas/AmazonNet"
}, {
"$ref": "#/components/schemas/AzureNet"
}, {
"$ref": "#/components/schemas/DockerNet"
}, {
"$ref": "#/components/schemas/EquinixMetalNet"
}, {
"$ref": "#/components/schemas/GoogleNet"
}, {
"$ref": "#/components/schemas/KVMNet"
}, {
"$ref": "#/components/schemas/LinodeNet"
}, {
"$ref": "#/components/schemas/LXDNet"
}, {
"$ref": "#/components/schemas/OpenstackNet"
}, {
"$ref": "#/components/schemas/VSphereNet"
}, {
"$ref": "#/components/schemas/VultrNet"
}]
},
"key": {
"description": "Associate SSH key",
"oneOf": [{
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Name or ID of the SSH key to deploy"
},
"user": {
"type": "string",
"description": "SSH user, supported on Google"
}
}
}, {
"type": "string",
"description": "Name or ID of the SSH key to deploy"
}]
},
"disks": {
"description": "Configure local disks",
"type": "object",
"properties": {
"disk_size": {
"description": "KVM, CloudSigma specific parameter",
"type": "integer"
},
"disk_path": {
"description": "KVM specific parameter. Where the VM disk file will be created",
"type": "string"
}
}
},
"volumes": {
"description": "Configure of attached storage volumes, e.g. cloud disks",
"anyOf": [{
"$ref": "#/components/schemas/AlibabaVolumes"
}, {
"$ref": "#/components/schemas/AmazonVolumes"
}, {
"$ref": "#/components/schemas/AzureVolumes"
}, {
"$ref": "#/components/schemas/CloudSigmaVolumes"
}, {
"$ref": "#/components/schemas/DigitalOceanVolumes"
}, {
"$ref": "#/components/schemas/GoogleVolumes"
}, {
"$ref": "#/components/schemas/LinodeVolumes"
}, {
"$ref": "#/components/schemas/LXDVolumes"
}, {
"$ref": "#/components/schemas/OpenstackVolumes"
}, {
"$ref": "#/components/schemas/VultrVolumes"
}]
},
"fqdn": {
"description": "Add DNS A Record that points machine's public IP to this Fully Qualified Domain Name. Zone needs to be managed by a configured Cloud DNS provider",
"type": "string"
},
"cloudinit": {
"description": "Run this Cloud Init script on first boot",
"type": "string"
},
"scripts": {
"description": "Run post deploy scripts over SSH",
"type": "array",
"items": {
"allOf": [{
"type": "object"
}, {
"oneOf": [{
"$ref": "#/components/schemas/InlineScript"
}, {
"$ref": "#/components/schemas/PostDeployScript"
}]
}]
}
},
"schedules": {
"description": "Configure scheduled actions for the provisioned machine",
"type": "array",
"items": {
"allOf": [{
"type": "object",
"properties": {
"schedule_type": {
"type": "string",
"enum": ["one_off", "crontab", "interval"]
},
"script": {
"$ref": "#/components/schemas/PostDeployScript"
},
"action": {
"type": "string",
"enum": ["start", "stop", "reboot", "destroy"]
},
"description": {
"type": "string"
}
},
"required": ["schedule_type"]
}, {
"oneOf": [{
"$ref": "#/components/schemas/OneOffSchedule"
}, {
"$ref": "#/components/schemas/CronSchedule"
}, {
"