UNPKG

@mistio/mist-form

Version:

A Webcomponent that renders a form defined by a JSONSchema & an optional UISchema spec

1,637 lines 126 kB
{ "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" }, { "