{
    "anyOf": [
        {
            "$ref": "#/definitions/SkaffoldConfig"
        }
    ],
    "definitions": {
        "Activation": {
            "additionalProperties": false,
            "description": "criteria by which a profile is auto-activated.",
            "preferredOrder": [
                "env",
                "kubeContext",
                "command"
            ],
            "properties": {
                "command": {
                    "description": "a Skaffold command for which the profile is auto-activated.",
                    "examples": [
                        "dev"
                    ],
                    "type": "string",
                    "x-intellij-html-description": "a Skaffold command for which the profile is auto-activated."
                },
                "env": {
                    "description": "a `key=value` pair. The profile is auto-activated if an Environment Variable `key` has value `value`.",
                    "examples": [
                        "ENV=production"
                    ],
                    "type": "string",
                    "x-intellij-html-description": "a <code>key=value</code> pair. The profile is auto-activated if an Environment Variable <code>key</code> has value <code>value</code>."
                },
                "kubeContext": {
                    "description": "a Kubernetes context for which the profile is auto-activated.",
                    "examples": [
                        "minikube"
                    ],
                    "type": "string",
                    "x-intellij-html-description": "a Kubernetes context for which the profile is auto-activated."
                }
            },
            "x-intellij-html-description": "criteria by which a profile is auto-activated."
        },
        "Artifact": {
            "anyOf": [
                {
                    "additionalProperties": false,
                    "preferredOrder": [
                        "image",
                        "context",
                        "sync"
                    ],
                    "properties": {
                        "context": {
                            "default": ".",
                            "description": "directory containing the artifact's sources.",
                            "type": "string",
                            "x-intellij-html-description": "directory containing the artifact's sources."
                        },
                        "image": {
                            "description": "name of the image to be built.",
                            "examples": [
                                "gcr.io/k8s-skaffold/example"
                            ],
                            "type": "string",
                            "x-intellij-html-description": "name of the image to be built."
                        },
                        "sync": {
                            "$ref": "#/definitions/Sync",
                            "description": "*alpha* local files synced to pods instead of triggering an image build when modified.",
                            "x-intellij-html-description": "<em>alpha</em> local files synced to pods instead of triggering an image build when modified."
                        }
                    }
                },
                {
                    "additionalProperties": false,
                    "preferredOrder": [
                        "image",
                        "context",
                        "sync",
                        "docker"
                    ],
                    "properties": {
                        "context": {
                            "default": ".",
                            "description": "directory containing the artifact's sources.",
                            "type": "string",
                            "x-intellij-html-description": "directory containing the artifact's sources."
                        },
                        "docker": {
                            "$ref": "#/definitions/DockerArtifact",
                            "description": "*beta* describes an artifact built from a Dockerfile.",
                            "x-intellij-html-description": "<em>beta</em> describes an artifact built from a Dockerfile."
                        },
                        "image": {
                            "description": "name of the image to be built.",
                            "examples": [
                                "gcr.io/k8s-skaffold/example"
                            ],
                            "type": "string",
                            "x-intellij-html-description": "name of the image to be built."
                        },
                        "sync": {
                            "$ref": "#/definitions/Sync",
                            "description": "*alpha* local files synced to pods instead of triggering an image build when modified.",
                            "x-intellij-html-description": "<em>alpha</em> local files synced to pods instead of triggering an image build when modified."
                        }
                    }
                },
                {
                    "additionalProperties": false,
                    "preferredOrder": [
                        "image",
                        "context",
                        "sync",
                        "bazel"
                    ],
                    "properties": {
                        "bazel": {
                            "$ref": "#/definitions/BazelArtifact",
                            "description": "*beta* requires bazel CLI to be installed and the sources to contain [Bazel](https://bazel.build/) configuration files.",
                            "x-intellij-html-description": "<em>beta</em> requires bazel CLI to be installed and the sources to contain <a href=\"https://bazel.build/\">Bazel</a> configuration files."
                        },
                        "context": {
                            "default": ".",
                            "description": "directory containing the artifact's sources.",
                            "type": "string",
                            "x-intellij-html-description": "directory containing the artifact's sources."
                        },
                        "image": {
                            "description": "name of the image to be built.",
                            "examples": [
                                "gcr.io/k8s-skaffold/example"
                            ],
                            "type": "string",
                            "x-intellij-html-description": "name of the image to be built."
                        },
                        "sync": {
                            "$ref": "#/definitions/Sync",
                            "description": "*alpha* local files synced to pods instead of triggering an image build when modified.",
                            "x-intellij-html-description": "<em>alpha</em> local files synced to pods instead of triggering an image build when modified."
                        }
                    }
                },
                {
                    "additionalProperties": false,
                    "preferredOrder": [
                        "image",
                        "context",
                        "sync",
                        "jibMaven"
                    ],
                    "properties": {
                        "context": {
                            "default": ".",
                            "description": "directory containing the artifact's sources.",
                            "type": "string",
                            "x-intellij-html-description": "directory containing the artifact's sources."
                        },
                        "image": {
                            "description": "name of the image to be built.",
                            "examples": [
                                "gcr.io/k8s-skaffold/example"
                            ],
                            "type": "string",
                            "x-intellij-html-description": "name of the image to be built."
                        },
                        "jibMaven": {
                            "$ref": "#/definitions/JibMavenArtifact",
                            "description": "*alpha* builds images using the [Jib plugin for Maven](https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin).",
                            "x-intellij-html-description": "<em>alpha</em> builds images using the <a href=\"https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin\">Jib plugin for Maven</a>."
                        },
                        "sync": {
                            "$ref": "#/definitions/Sync",
                            "description": "*alpha* local files synced to pods instead of triggering an image build when modified.",
                            "x-intellij-html-description": "<em>alpha</em> local files synced to pods instead of triggering an image build when modified."
                        }
                    }
                },
                {
                    "additionalProperties": false,
                    "preferredOrder": [
                        "image",
                        "context",
                        "sync",
                        "jibGradle"
                    ],
                    "properties": {
                        "context": {
                            "default": ".",
                            "description": "directory containing the artifact's sources.",
                            "type": "string",
                            "x-intellij-html-description": "directory containing the artifact's sources."
                        },
                        "image": {
                            "description": "name of the image to be built.",
                            "examples": [
                                "gcr.io/k8s-skaffold/example"
                            ],
                            "type": "string",
                            "x-intellij-html-description": "name of the image to be built."
                        },
                        "jibGradle": {
                            "$ref": "#/definitions/JibGradleArtifact",
                            "description": "*alpha* builds images using the [Jib plugin for Gradle](https://github.com/GoogleContainerTools/jib/tree/master/jib-gradle-plugin).",
                            "x-intellij-html-description": "<em>alpha</em> builds images using the <a href=\"https://github.com/GoogleContainerTools/jib/tree/master/jib-gradle-plugin\">Jib plugin for Gradle</a>."
                        },
                        "sync": {
                            "$ref": "#/definitions/Sync",
                            "description": "*alpha* local files synced to pods instead of triggering an image build when modified.",
                            "x-intellij-html-description": "<em>alpha</em> local files synced to pods instead of triggering an image build when modified."
                        }
                    }
                },
                {
                    "additionalProperties": false,
                    "preferredOrder": [
                        "image",
                        "context",
                        "sync",
                        "kaniko"
                    ],
                    "properties": {
                        "context": {
                            "default": ".",
                            "description": "directory containing the artifact's sources.",
                            "type": "string",
                            "x-intellij-html-description": "directory containing the artifact's sources."
                        },
                        "image": {
                            "description": "name of the image to be built.",
                            "examples": [
                                "gcr.io/k8s-skaffold/example"
                            ],
                            "type": "string",
                            "x-intellij-html-description": "name of the image to be built."
                        },
                        "kaniko": {
                            "$ref": "#/definitions/KanikoArtifact",
                            "description": "*alpha* builds images using [kaniko](https://github.com/GoogleContainerTools/kaniko).",
                            "x-intellij-html-description": "<em>alpha</em> builds images using <a href=\"https://github.com/GoogleContainerTools/kaniko\">kaniko</a>."
                        },
                        "sync": {
                            "$ref": "#/definitions/Sync",
                            "description": "*alpha* local files synced to pods instead of triggering an image build when modified.",
                            "x-intellij-html-description": "<em>alpha</em> local files synced to pods instead of triggering an image build when modified."
                        }
                    }
                },
                {
                    "additionalProperties": false,
                    "preferredOrder": [
                        "image",
                        "context",
                        "sync",
                        "custom"
                    ],
                    "properties": {
                        "context": {
                            "default": ".",
                            "description": "directory containing the artifact's sources.",
                            "type": "string",
                            "x-intellij-html-description": "directory containing the artifact's sources."
                        },
                        "custom": {
                            "$ref": "#/definitions/CustomArtifact",
                            "description": "*alpha* builds images using a custom build script written by the user.",
                            "x-intellij-html-description": "<em>alpha</em> builds images using a custom build script written by the user."
                        },
                        "image": {
                            "description": "name of the image to be built.",
                            "examples": [
                                "gcr.io/k8s-skaffold/example"
                            ],
                            "type": "string",
                            "x-intellij-html-description": "name of the image to be built."
                        },
                        "sync": {
                            "$ref": "#/definitions/Sync",
                            "description": "*alpha* local files synced to pods instead of triggering an image build when modified.",
                            "x-intellij-html-description": "<em>alpha</em> local files synced to pods instead of triggering an image build when modified."
                        }
                    }
                }
            ],
            "description": "items that need to be built, along with the context in which they should be built.",
            "required": [
                "image"
            ],
            "x-intellij-html-description": "items that need to be built, along with the context in which they should be built."
        },
        "BazelArtifact": {
            "additionalProperties": false,
            "description": "*beta* describes an artifact built with [Bazel](https://bazel.build/).",
            "preferredOrder": [
                "target",
                "args"
            ],
            "properties": {
                "args": {
                    "default": "[]",
                    "description": "additional args to pass to `bazel build`.",
                    "examples": [
                        "[\"-flag\", \"--otherflag\"]"
                    ],
                    "items": {
                        "type": "string"
                    },
                    "type": "array",
                    "x-intellij-html-description": "additional args to pass to <code>bazel build</code>."
                },
                "target": {
                    "description": "`bazel build` target to run.",
                    "examples": [
                        "//:skaffold_example.tar"
                    ],
                    "type": "string",
                    "x-intellij-html-description": "<code>bazel build</code> target to run."
                }
            },
            "required": [
                "target"
            ],
            "x-intellij-html-description": "<em>beta</em> describes an artifact built with <a href=\"https://bazel.build/\">Bazel</a>."
        },
        "BuildConfig": {
            "anyOf": [
                {
                    "additionalProperties": false,
                    "preferredOrder": [
                        "artifacts",
                        "insecureRegistries",
                        "tagPolicy"
                    ],
                    "properties": {
                        "artifacts": {
                            "description": "the images you're going to be building.",
                            "items": {
                                "$ref": "#/definitions/Artifact"
                            },
                            "type": "array",
                            "x-intellij-html-description": "the images you're going to be building."
                        },
                        "insecureRegistries": {
                            "default": "[]",
                            "description": "a list of registries declared by the user to be insecure. These registries will be connected to via HTTP instead of HTTPS.",
                            "items": {
                                "type": "string"
                            },
                            "type": "array",
                            "x-intellij-html-description": "a list of registries declared by the user to be insecure. These registries will be connected to via HTTP instead of HTTPS."
                        },
                        "tagPolicy": {
                            "$ref": "#/definitions/TagPolicy",
                            "description": "*beta* determines how images are tagged. A few strategies are provided here, although you most likely won't need to care! If not specified, it defaults to `gitCommit: {variant: Tags}`.",
                            "x-intellij-html-description": "<em>beta</em> determines how images are tagged. A few strategies are provided here, although you most likely won't need to care! If not specified, it defaults to <code>gitCommit: {variant: Tags}</code>."
                        }
                    }
                },
                {
                    "additionalProperties": false,
                    "preferredOrder": [
                        "artifacts",
                        "insecureRegistries",
                        "tagPolicy",
                        "local"
                    ],
                    "properties": {
                        "artifacts": {
                            "description": "the images you're going to be building.",
                            "items": {
                                "$ref": "#/definitions/Artifact"
                            },
                            "type": "array",
                            "x-intellij-html-description": "the images you're going to be building."
                        },
                        "insecureRegistries": {
                            "default": "[]",
                            "description": "a list of registries declared by the user to be insecure. These registries will be connected to via HTTP instead of HTTPS.",
                            "items": {
                                "type": "string"
                            },
                            "type": "array",
                            "x-intellij-html-description": "a list of registries declared by the user to be insecure. These registries will be connected to via HTTP instead of HTTPS."
                        },
                        "local": {
                            "$ref": "#/definitions/LocalBuild",
                            "description": "*beta* describes how to do a build on the local docker daemon and optionally push to a repository.",
                            "x-intellij-html-description": "<em>beta</em> describes how to do a build on the local docker daemon and optionally push to a repository."
                        },
                        "tagPolicy": {
                            "$ref": "#/definitions/TagPolicy",
                            "description": "*beta* determines how images are tagged. A few strategies are provided here, although you most likely won't need to care! If not specified, it defaults to `gitCommit: {variant: Tags}`.",
                            "x-intellij-html-description": "<em>beta</em> determines how images are tagged. A few strategies are provided here, although you most likely won't need to care! If not specified, it defaults to <code>gitCommit: {variant: Tags}</code>."
                        }
                    }
                },
                {
                    "additionalProperties": false,
                    "preferredOrder": [
                        "artifacts",
                        "insecureRegistries",
                        "tagPolicy",
                        "googleCloudBuild"
                    ],
                    "properties": {
                        "artifacts": {
                            "description": "the images you're going to be building.",
                            "items": {
                                "$ref": "#/definitions/Artifact"
                            },
                            "type": "array",
                            "x-intellij-html-description": "the images you're going to be building."
                        },
                        "googleCloudBuild": {
                            "$ref": "#/definitions/GoogleCloudBuild",
                            "description": "*beta* describes how to do a remote build on [Google Cloud Build](https://cloud.google.com/cloud-build/).",
                            "x-intellij-html-description": "<em>beta</em> describes how to do a remote build on <a href=\"https://cloud.google.com/cloud-build/\">Google Cloud Build</a>."
                        },
                        "insecureRegistries": {
                            "default": "[]",
                            "description": "a list of registries declared by the user to be insecure. These registries will be connected to via HTTP instead of HTTPS.",
                            "items": {
                                "type": "string"
                            },
                            "type": "array",
                            "x-intellij-html-description": "a list of registries declared by the user to be insecure. These registries will be connected to via HTTP instead of HTTPS."
                        },
                        "tagPolicy": {
                            "$ref": "#/definitions/TagPolicy",
                            "description": "*beta* determines how images are tagged. A few strategies are provided here, although you most likely won't need to care! If not specified, it defaults to `gitCommit: {variant: Tags}`.",
                            "x-intellij-html-description": "<em>beta</em> determines how images are tagged. A few strategies are provided here, although you most likely won't need to care! If not specified, it defaults to <code>gitCommit: {variant: Tags}</code>."
                        }
                    }
                },
                {
                    "additionalProperties": false,
                    "preferredOrder": [
                        "artifacts",
                        "insecureRegistries",
                        "tagPolicy",
                        "cluster"
                    ],
                    "properties": {
                        "artifacts": {
                            "description": "the images you're going to be building.",
                            "items": {
                                "$ref": "#/definitions/Artifact"
                            },
                            "type": "array",
                            "x-intellij-html-description": "the images you're going to be building."
                        },
                        "cluster": {
                            "$ref": "#/definitions/ClusterDetails",
                            "description": "*beta* describes how to do an on-cluster build.",
                            "x-intellij-html-description": "<em>beta</em> describes how to do an on-cluster build."
                        },
                        "insecureRegistries": {
                            "default": "[]",
                            "description": "a list of registries declared by the user to be insecure. These registries will be connected to via HTTP instead of HTTPS.",
                            "items": {
                                "type": "string"
                            },
                            "type": "array",
                            "x-intellij-html-description": "a list of registries declared by the user to be insecure. These registries will be connected to via HTTP instead of HTTPS."
                        },
                        "tagPolicy": {
                            "$ref": "#/definitions/TagPolicy",
                            "description": "*beta* determines how images are tagged. A few strategies are provided here, although you most likely won't need to care! If not specified, it defaults to `gitCommit: {variant: Tags}`.",
                            "x-intellij-html-description": "<em>beta</em> determines how images are tagged. A few strategies are provided here, although you most likely won't need to care! If not specified, it defaults to <code>gitCommit: {variant: Tags}</code>."
                        }
                    }
                }
            ],
            "description": "contains all the configuration for the build steps.",
            "x-intellij-html-description": "contains all the configuration for the build steps."
        },
        "ClusterDetails": {
            "additionalProperties": false,
            "description": "*beta* describes how to do an on-cluster build.",
            "preferredOrder": [
                "pullSecret",
                "pullSecretName",
                "namespace",
                "timeout",
                "dockerConfig",
                "resources"
            ],
            "properties": {
                "dockerConfig": {
                    "$ref": "#/definitions/DockerConfig",
                    "description": "describes how to mount the local Docker configuration into a pod.",
                    "x-intellij-html-description": "describes how to mount the local Docker configuration into a pod."
                },
                "namespace": {
                    "description": "Kubernetes namespace. Defaults to current namespace in Kubernetes configuration.",
                    "type": "string",
                    "x-intellij-html-description": "Kubernetes namespace. Defaults to current namespace in Kubernetes configuration."
                },
                "pullSecret": {
                    "description": "path to the secret key file.",
                    "type": "string",
                    "x-intellij-html-description": "path to the secret key file."
                },
                "pullSecretName": {
                    "default": "kaniko-secret",
                    "description": "name of the Kubernetes secret for pulling the files from the build context and pushing the final image.",
                    "type": "string",
                    "x-intellij-html-description": "name of the Kubernetes secret for pulling the files from the build context and pushing the final image."
                },
                "resources": {
                    "$ref": "#/definitions/ResourceRequirements",
                    "description": "define the resource requirements for the kaniko pod.",
                    "x-intellij-html-description": "define the resource requirements for the kaniko pod."
                },
                "timeout": {
                    "description": "amount of time (in seconds) that this build is allowed to run. Defaults to 20 minutes (`20m`).",
                    "type": "string",
                    "x-intellij-html-description": "amount of time (in seconds) that this build is allowed to run. Defaults to 20 minutes (<code>20m</code>)."
                }
            },
            "x-intellij-html-description": "<em>beta</em> describes how to do an on-cluster build."
        },
        "CustomArtifact": {
            "additionalProperties": false,
            "description": "*alpha* describes an artifact built from a custom build script written by the user. It can be used to build images with builders that aren't directly integrated with skaffold.",
            "preferredOrder": [
                "buildCommand",
                "dependencies"
            ],
            "properties": {
                "buildCommand": {
                    "description": "command executed to build the image.",
                    "type": "string",
                    "x-intellij-html-description": "command executed to build the image."
                },
                "dependencies": {
                    "$ref": "#/definitions/CustomDependencies",
                    "description": "file dependencies that skaffold should watch for both rebuilding and file syncing for this artifact.",
                    "x-intellij-html-description": "file dependencies that skaffold should watch for both rebuilding and file syncing for this artifact."
                }
            },
            "x-intellij-html-description": "<em>alpha</em> describes an artifact built from a custom build script written by the user. It can be used to build images with builders that aren't directly integrated with skaffold."
        },
        "CustomDependencies": {
            "additionalProperties": false,
            "description": "*alpha* used to specify dependencies for an artifact built by a custom build script. Either `dockerfile` or `paths` should be specified for file watching to work as expected.",
            "preferredOrder": [
                "dockerfile",
                "command",
                "paths",
                "ignore"
            ],
            "properties": {
                "command": {
                    "description": "represents a custom command that skaffold executes to obtain dependencies. The output of this command *must* be a valid JSON array.",
                    "type": "string",
                    "x-intellij-html-description": "represents a custom command that skaffold executes to obtain dependencies. The output of this command <em>must</em> be a valid JSON array."
                },
                "dockerfile": {
                    "$ref": "#/definitions/DockerfileDependency",
                    "description": "should be set if the artifact is built from a Dockerfile, from which skaffold can determine dependencies.",
                    "x-intellij-html-description": "should be set if the artifact is built from a Dockerfile, from which skaffold can determine dependencies."
                },
                "ignore": {
                    "default": "[]",
                    "description": "specifies the paths that should be ignored by skaffold's file watcher. If a file exists in both `paths` and in `ignore`, it will be ignored, and will be excluded from both rebuilds and file synchronization. Will only work in conjunction with `paths`.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array",
                    "x-intellij-html-description": "specifies the paths that should be ignored by skaffold's file watcher. If a file exists in both <code>paths</code> and in <code>ignore</code>, it will be ignored, and will be excluded from both rebuilds and file synchronization. Will only work in conjunction with <code>paths</code>."
                },
                "paths": {
                    "default": "[]",
                    "description": "should be set to the file dependencies for this artifact, so that the skaffold file watcher knows when to rebuild and perform file synchronization.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array",
                    "x-intellij-html-description": "should be set to the file dependencies for this artifact, so that the skaffold file watcher knows when to rebuild and perform file synchronization."
                }
            },
            "x-intellij-html-description": "<em>alpha</em> used to specify dependencies for an artifact built by a custom build script. Either <code>dockerfile</code> or <code>paths</code> should be specified for file watching to work as expected."
        },
        "DateTimeTagger": {
            "additionalProperties": false,
            "description": "*beta* tags images with the build timestamp.",
            "preferredOrder": [
                "format",
                "timezone"
            ],
            "properties": {
                "format": {
                    "default": "2006-01-02_15-04-05.999_MST",
                    "description": "formats the date and time. See [#Time.Format](https://golang.org/pkg/time/#Time.Format).",
                    "type": "string",
                    "x-intellij-html-description": "formats the date and time. See <a href=\"https://golang.org/pkg/time/#Time.Format\">#Time.Format</a>."
                },
                "timezone": {
                    "description": "sets the timezone for the date and time. See [Time.LoadLocation](https://golang.org/pkg/time/#Time.LoadLocation). Defaults to the local timezone.",
                    "type": "string",
                    "x-intellij-html-description": "sets the timezone for the date and time. See <a href=\"https://golang.org/pkg/time/#Time.LoadLocation\">Time.LoadLocation</a>. Defaults to the local timezone."
                }
            },
            "x-intellij-html-description": "<em>beta</em> tags images with the build timestamp."
        },
        "DeployConfig": {
            "anyOf": [
                {
                    "additionalProperties": false
                },
                {
                    "additionalProperties": false,
                    "preferredOrder": [
                        "helm"
                    ],
                    "properties": {
                        "helm": {
                            "$ref": "#/definitions/HelmDeploy",
                            "description": "*beta* uses the `helm` CLI to apply the charts to the cluster.",
                            "x-intellij-html-description": "<em>beta</em> uses the <code>helm</code> CLI to apply the charts to the cluster."
                        }
                    }
                },
                {
                    "additionalProperties": false,
                    "preferredOrder": [
                        "kubectl"
                    ],
                    "properties": {
                        "kubectl": {
                            "$ref": "#/definitions/KubectlDeploy",
                            "description": "*beta* uses a client side `kubectl apply` to deploy manifests. You'll need a `kubectl` CLI version installed that's compatible with your cluster.",
                            "x-intellij-html-description": "<em>beta</em> uses a client side <code>kubectl apply</code> to deploy manifests. You'll need a <code>kubectl</code> CLI version installed that's compatible with your cluster."
                        }
                    }
                },
                {
                    "additionalProperties": false,
                    "preferredOrder": [
                        "kustomize"
                    ],
                    "properties": {
                        "kustomize": {
                            "$ref": "#/definitions/KustomizeDeploy",
                            "description": "*beta* uses the `kustomize` CLI to \"patch\" a deployment for a target environment.",
                            "x-intellij-html-description": "<em>beta</em> uses the <code>kustomize</code> CLI to &quot;patch&quot; a deployment for a target environment."
                        }
                    }
                }
            ],
            "description": "contains all the configuration needed by the deploy steps.",
            "x-intellij-html-description": "contains all the configuration needed by the deploy steps."
        },
        "DockerArtifact": {
            "additionalProperties": false,
            "description": "*beta* describes an artifact built from a Dockerfile, usually using `docker build`.",
            "preferredOrder": [
                "dockerfile",
                "target",
                "buildArgs",
                "network",
                "cacheFrom",
                "noCache"
            ],
            "properties": {
                "buildArgs": {
                    "additionalProperties": {
                        "type": "string"
                    },
                    "default": "{}",
                    "description": "arguments passed to the docker build.",
                    "examples": [
                        "{\"key1\": \"value1\", \"key2\": \"value2\"}"
                    ],
                    "type": "object",
                    "x-intellij-html-description": "arguments passed to the docker build."
                },
                "cacheFrom": {
                    "default": "[]",
                    "description": "the Docker images used as cache sources.",
                    "examples": [
                        "[\"golang:1.10.1-alpine3.7\", \"alpine:3.7\"]"
                    ],
                    "items": {
                        "type": "string"
                    },
                    "type": "array",
                    "x-intellij-html-description": "the Docker images used as cache sources."
                },
                "dockerfile": {
                    "default": "Dockerfile",
                    "description": "locates the Dockerfile relative to workspace.",
                    "type": "string",
                    "x-intellij-html-description": "locates the Dockerfile relative to workspace."
                },
                "network": {
                    "description": "passed through to docker and overrides the network configuration of docker builder. If unset, use whatever is configured in the underlying docker daemon. Valid modes are `host`: use the host's networking stack. `bridge`: use the bridged network configuration. `none`: no networking in the container.",
                    "enum": [
                        "host",
                        "bridge",
                        "none"
                    ],
                    "type": "string",
                    "x-intellij-html-description": "passed through to docker and overrides the network configuration of docker builder. If unset, use whatever is configured in the underlying docker daemon. Valid modes are <code>host</code>: use the host's networking stack. <code>bridge</code>: use the bridged network configuration. <code>none</code>: no networking in the container."
                },
                "noCache": {
                    "default": "false",
                    "description": "used to pass in --no-cache to docker build to prevent caching.",
                    "type": "boolean",
                    "x-intellij-html-description": "used to pass in --no-cache to docker build to prevent caching."
                },
                "target": {
                    "description": "Dockerfile target name to build.",
                    "type": "string",
                    "x-intellij-html-description": "Dockerfile target name to build."
                }
            },
            "x-intellij-html-description": "<em>beta</em> describes an artifact built from a Dockerfile, usually using <code>docker build</code>."
        },
        "DockerConfig": {
            "additionalProperties": false,
            "description": "contains information about the docker `config.json` to mount.",
            "preferredOrder": [
                "path",
                "secretName"
            ],
            "properties": {
                "path": {
                    "description": "path to the docker `config.json`.",
                    "type": "string",
                    "x-intellij-html-description": "path to the docker <code>config.json</code>."
                },
                "secretName": {
                    "description": "Kubernetes secret that will hold the Docker configuration.",
                    "type": "string",
                    "x-intellij-html-description": "Kubernetes secret that will hold the Docker configuration."
                }
            },
            "x-intellij-html-description": "contains information about the docker <code>config.json</code> to mount."
        },
        "DockerfileDependency": {
            "additionalProperties": false,
            "description": "*alpha* used to specify a custom build artifact that is built from a Dockerfile. This allows skaffold to determine dependencies from the Dockerfile.",
            "preferredOrder": [
                "path",
                "buildArgs"
            ],
            "properties": {
                "buildArgs": {
                    "additionalProperties": {
                        "type": "string"
                    },
                    "default": "{}",
                    "description": "arguments passed to the docker build. It also accepts environment variables via the go template syntax.",
                    "examples": [
                        "{\"key1\": \"value1\", \"key2\": \"value2\", \"key3\": \"{{.ENV_VARIABLE}}\"}"
                    ],
                    "type": "object",
                    "x-intellij-html-description": "arguments passed to the docker build. It also accepts environment variables via the go template syntax."
                },
                "path": {
                    "description": "locates the Dockerfile relative to workspace.",
                    "type": "string",
                    "x-intellij-html-description": "locates the Dockerfile relative to workspace."
                }
            },
            "x-intellij-html-description": "<em>alpha</em> used to specify a custom build artifact that is built from a Dockerfile. This allows skaffold to determine dependencies from the Dockerfile."
        },
        "EnvTemplateTagger": {
            "additionalProperties": false,
            "description": "*beta* tags images with a configurable template string.",
            "preferredOrder": [
                "template"
            ],
            "properties": {
                "template": {
                    "description": "used to produce the image name and tag. See golang [text/template](https://golang.org/pkg/text/template/). The template is executed against the current environment, with those variables injected:   IMAGE_NAME   |  Name of the image being built, as supplied in the artifacts section.",
                    "examples": [
                        "{{.RELEASE}}-{{.IMAGE_NAME}}"
                    ],
                    "type": "string",
                    "x-intellij-html-description": "used to produce the image name and tag. See golang <a href=\"https://golang.org/pkg/text/template/\">text/template</a>. The template is executed against the current environment, with those variables injected:   IMAGE_NAME   |  Name of the image being built, as supplied in the artifacts section."
                }
            },
            "required": [
                "template"
            ],
            "x-intellij-html-description": "<em>beta</em> tags images with a configurable template string."
        },
        "GitTagger": {
            "additionalProperties": false,
            "description": "*beta* tags images with the git tag or commit of the artifact's workspace.",
            "preferredOrder": [
                "variant"
            ],
            "properties": {
                "variant": {
                    "description": "determines the behavior of the git tagger. Valid variants are `Tags` (default): use git tags or fall back to abbreviated commit hash. `CommitSha`: use the full git commit sha. `AbbrevCommitSha`: use the abbreviated git commit sha.",
                    "enum": [
                        "Tags",
                        "CommitSha",
                        "AbbrevCommitSha"
                    ],
                    "type": "string",
                    "x-intellij-html-description": "determines the behavior of the git tagger. Valid variants are <code>Tags</code> (default): use git tags or fall back to abbreviated commit hash. <code>CommitSha</code>: use the full git commit sha. <code>AbbrevCommitSha</code>: use the abbreviated git commit sha."
                }
            },
            "x-intellij-html-description": "<em>beta</em> tags images with the git tag or commit of the artifact's workspace."
        },
        "GoogleCloudBuild": {
            "additionalProperties": false,
            "description": "*beta* describes how to do a remote build on [Google Cloud Build](https://cloud.google.com/cloud-build/docs/). Docker and Jib artifacts can be built on Cloud Build. The `projectId` needs to be provided and the currently logged in user should be given permissions to trigger new builds.",
            "preferredOrder": [
                "projectId",
                "diskSizeGb",
                "machineType",
                "timeout",
                "dockerImage",
                "mavenImage",
                "gradleImage"
            ],
            "properties": {
                "diskSizeGb": {
                    "description": "disk size of the VM that runs the build. See [Cloud Build Reference](https://cloud.google.com/cloud-build/docs/api/reference/rest/v1/projects.builds#buildoptions).",
                    "type": "integer",
                    "x-intellij-html-description": "disk size of the VM that runs the build. See <a href=\"https://cloud.google.com/cloud-build/docs/api/reference/rest/v1/projects.builds#buildoptions\">Cloud Build Reference</a>."
                },
                "dockerImage": {
                    "default": "gcr.io/cloud-builders/docker",
                    "description": "image that runs a Docker build. See [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders).",
                    "type": "string",
                    "x-intellij-html-description": "image that runs a Docker build. See <a href=\"https://cloud.google.com/cloud-build/docs/cloud-builders\">Cloud Builders</a>."
                },
                "gradleImage": {
                    "default": "gcr.io/cloud-builders/gradle",
                    "description": "image that runs a Gradle build. See [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders).",
                    "type": "string",
                    "x-intellij-html-description": "image that runs a Gradle build. See <a href=\"https://cloud.google.com/cloud-build/docs/cloud-builders\">Cloud Builders</a>."
                },
                "machineType": {
                    "description": "type of the VM that runs the build. See [Cloud Build Reference](https://cloud.google.com/cloud-build/docs/api/reference/rest/v1/projects.builds#buildoptions).",
                    "type": "string",
                    "x-intellij-html-description": "type of the VM that runs the build. See <a href=\"https://cloud.google.com/cloud-build/docs/api/reference/rest/v1/projects.builds#buildoptions\">Cloud Build Reference</a>."
                },
                "mavenImage": {
                    "default": "gcr.io/cloud-builders/mvn",
                    "description": "image that runs a Maven build. See [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders).",
                    "type": "string",
                    "x-intellij-html-description": "image that runs a Maven build. See <a href=\"https://cloud.google.com/cloud-build/docs/cloud-builders\">Cloud Builders</a>."
                },
                "projectId": {
                    "description": "ID of your Cloud Platform Project. If it is not provided, Skaffold will guess it from the image name. For example, given the artifact image name `gcr.io/myproject/image`, Skaffold will use the `myproject` GCP project.",
                    "type": "string",
                    "x-intellij-html-description": "ID of your Cloud Platform Project. If it is not provided, Skaffold will guess it from the image name. For example, given the artifact image name <code>gcr.io/myproject/image</code>, Skaffold will use the <code>myproject</code> GCP project."
                },
                "timeout": {
                    "description": "amount of time (in seconds) that this build should be allowed to run. See [Cloud Build Reference](https://cloud.google.com/cloud-build/docs/api/reference/rest/v1/projects.builds#resource-build).",
                    "type": "string",
                    "x-intellij-html-description": "amount of time (in seconds) that this build should be allowed to run. See <a href=\"https://cloud.google.com/cloud-build/docs/api/reference/rest/v1/projects.builds#resource-build\">Cloud Build Reference</a>."
                }
            },
            "x-intellij-html-description": "<em>beta</em> describes how to do a remote build on <a href=\"https://cloud.google.com/cloud-build/docs/\">Google Cloud Build</a>. Docker and Jib artifacts can be built on Cloud Build. The <code>projectId</code> needs to be provided and the currently logged in user should be given permissions to trigger new builds."
        },
        "HelmConventionConfig": {
            "description": "image config in the syntax of image.repository and image.tag.",
            "x-intellij-html-description": "image config in the syntax of image.repository and image.tag."
        },
        "HelmDeploy": {
            "additionalProperties": false,
            "description": "*beta* uses the `helm` CLI to apply the charts to the cluster.",
            "preferredOrder": [
                "releases",
                "flags"
            ],
            "properties": {
                "flags": {
                    "$ref": "#/definitions/HelmDeployFlags",
                    "description": "additional option flags that are passed on the command line to `helm`.",
                    "x-intellij-html-description": "additional option flags that are passed on the command line to <code>helm</code>."
                },
                "releases": {
                    "description": "a list of Helm releases.",
                    "items": {
                        "$ref": "#/definitions/HelmRelease"
                    },
                    "type": "array",
                    "x-intellij-html-description": "a list of Helm releases."
                }
            },
            "required": [
                "releases"
            ],
            "x-intellij-html-description": "<em>beta</em> uses the <code>helm</code> CLI to apply the charts to the cluster."
        },
        "HelmDeployFlags": {
            "additionalProperties": false,
            "description": "additional option flags that are passed on the command line to `helm`.",
            "preferredOrder": [
                "global",
                "install",
                "upgrade"
            ],
            "properties": {
                "global": {
                    "default": "[]",
                    "description": "additional flags passed on every command.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array",
                    "x-intellij-html-description": "additional flags passed on every command."
                },
                "install": {
                    "default": "[]",
                    "description": "additional flags passed to (`helm install`).",
                    "items": {
                        "type": "string"
                    },
                    "type": "array",
                    "x-intellij-html-description": "additional flags passed to (<code>helm install</code>)."
                },
                "upgrade": {
                    "default": "[]",
                    "description": "additional flags passed to (`helm upgrade`).",
                    "items": {
                        "type": "string"
                    },
                    "type": "array",
                    "x-intellij-html-description": "additional flags passed to (<code>helm upgrade</code>)."
                }
            },
            "x-intellij-html-description": "additional option flags that are passed on the command line to <code>helm</code>."
        },
        "HelmFQNConfig": {
            "additionalProperties": false,
            "description": "image config to use the FullyQualifiedImageName as param to set.",
            "preferredOrder": [
                "property"
            ],
            "properties": {
                "property": {
                    "description": "defines the image config.",
                    "type": "string",
                    "x-intellij-html-description": "defines the image config."
                }
            },
            "x-intellij-html-description": "image config to use the FullyQualifiedImageName as param to set."
        },
        "HelmImageStrategy": {
            "anyOf": [
                {
                    "additionalProperties": false
                },
                {
                    "additionalProperties": false,
                    "preferredOrder": [
                        "fqn"
                    ],
                    "properties": {
                        "fqn": {
                            "$ref": "#/definitions/HelmFQNConfig",
                            "description": "image configuration uses the syntax `IMAGE-NAME=IMAGE-REPOSITORY:IMAGE-TAG`.",
                            "x-intellij-html-description": "image configuration uses the syntax <code>IMAGE-NAME=IMAGE-REPOSITORY:IMAGE-TAG</code>."
                        }
                    }
                },
                {
                    "additionalProperties": false,
                    "preferredOrder": [
                        "helm"
                    ],
                    "properties": {
                        "helm": {
                            "$ref": "#/definitions/HelmConventionConfig",
                            "description": "image configuration uses the syntax `IMAGE-NAME.repository=IMAGE-REPOSITORY, IMAGE-NAME.tag=IMAGE-TAG`.",
                            "x-intellij-html-description": "image configuration uses the syntax <code>IMAGE-NAME.repository=IMAGE-REPOSITORY, IMAGE-NAME.tag=IMAGE-TAG</code>."
                        }
                    }
                }
            ],
            "description": "adds image configurations to the Helm `values` file.",
            "x-intellij-html-description": "adds image configurations to the Helm <code>values</code> file."
        },
        "HelmPackaged": {
            "additionalProperties": false,
            "description": "parameters for packaging helm chart (`helm package`).",
            "preferredOrder": [
                "version",
                "appVersion"
            ],
            "properties": {
                "appVersion": {
                    "description": "sets the `appVersion` on the chart to this version.",
                    "type": "string",
                    "x-intellij-html-description": "sets the <code>appVersion</code> on the chart to this version."
                },
                "version": {
                    "description": "sets the `version` on the chart to this semver version.",
                    "type": "string",
                    "x-intellij-html-description": "sets the <code>version</code> on the chart to this semver version."
                }
            },
            "x-intellij-html-description": "parameters for packaging helm chart (<code>helm package</code>)."
        },
        "HelmRelease": {
            "additionalProperties": false,
            "description": "describes a helm release to be deployed.",
            "preferredOrder": [
                "name",
                "chartPath",
                "valuesFiles",
                "values",
                "namespace",
                "version",
                "setValues",
                "setValueTemplates",
                "wait",
                "recreatePods",
                "skipBuildDependencies",
                "useHelmSecrets",
                "overrides",
                "packaged",
                "imageStrategy"
            ],
            "properties": {
                "chartPath": {
                    "description": "path to the Helm chart.",
                    "type": "string",
                    "x-intellij-html-description": "path to the Helm chart."
                },
                "imageStrategy": {
                    "$ref": "#/definitions/HelmImageStrategy",
                    "description": "adds image configurations to the Helm `values` file.",
                    "x-intellij-html-description": "adds image configurations to the Helm <code>values</code> file."
                },
                "name": {
                    "description": "name of the Helm release.",
                    "type": "string",
                    "x-intellij-html-description": "name of the Helm release."
                },
                "namespace": {
                    "description": "Kubernetes namespace.",
                    "type": "string",
                    "x-intellij-html-description": "Kubernetes namespace."
                },
                "overrides": {
                    "description": "key-value pairs. If present, Skaffold will build a Helm `values` file that overrides the original and use it to call Helm CLI (`--f` flag).",
                    "x-intellij-html-description": "key-value pairs. If present, Skaffold will build a Helm <code>values</code> file that overrides the original and use it to call Helm CLI (<code>--f</code> flag)."
                },
                "packaged": {
                    "$ref": "#/definitions/HelmPackaged",
                    "description": "parameters for packaging helm chart (`helm package`).",
                    "x-intellij-html-description": "parameters for packaging helm chart (<code>helm package</code>)."
                },
                "recreatePods": {
                    "default": "false",
                    "description": "if `true`, Skaffold will send `--recreate-pods` flag to Helm CLI.",
                    "type": "boolean",
                    "x-intellij-html-description": "if <code>true</code>, Skaffold will send <code>--recreate-pods</code> flag to Helm CLI."
                },
                "setValueTemplates": {
                    "additionalProperties": {
                        "type": "string"
                    },
                    "default": "{}",
                    "description": "key-value pairs. If present, Skaffold will try to parse the value part of each key-value pair using environment variables in the system, then send `--set` flag to Helm CLI and append all parsed pairs after the flag.",
                    "type": "object",
                    "x-intellij-html-description": "key-value pairs. If present, Skaffold will try to parse the value part of each key-value pair using environment variables in the system, then send <code>--set</code> flag to Helm CLI and append all parsed pairs after the flag."
                },
                "setValues": {
                    "additionalProperties": {
                        "type": "string"
                    },
                    "default": "{}",
                    "description": "key-value pairs. If present, Skaffold will send `--set` flag to Helm CLI and append all pairs after the flag.",
                    "type": "object",
                    "x-intellij-html-description": "key-value pairs. If present, Skaffold will send <code>--set</code> flag to Helm CLI and append all pairs after the flag."
                },
                "skipBuildDependencies": {
                    "default": "false",
                    "description": "should build dependencies be skipped.",
                    "type": "boolean",
                    "x-intellij-html-description": "should build dependencies be skipped."
                },
                "useHelmSecrets": {
                    "default": "false",
                    "description": "instructs skaffold to use secrets plugin on deployment.",
                    "type": "boolean",
                    "x-intellij-html-description": "instructs skaffold to use secrets plugin on deployment."
                },
                "values": {
                    "additionalProperties": {
                        "type": "string"
                    },
                    "default": "{}",
                    "description": "key-value pairs supplementing the Helm `values` file.",
                    "type": "object",
                    "x-intellij-html-description": "key-value pairs supplementing the Helm <code>values</code> file."
                },
                "valuesFiles": {
                    "default": "[]",
                    "description": "paths to the Helm `values` files.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array",
                    "x-intellij-html-description": "paths to the Helm <code>values</code> files."
                },
                "version": {
                    "description": "version of the chart.",
                    "type": "string",
                    "x-intellij-html-description": "version of the chart."
                },
                "wait": {
                    "default": "false",
                    "description": "if `true`, Skaffold will send `--wait` flag to Helm CLI.",
                    "type": "boolean",
                    "x-intellij-html-description": "if <code>true</code>, Skaffold will send <code>--wait</code> flag to Helm CLI."
                }
            },
            "required": [
                "name",
                "chartPath"
            ],
            "x-intellij-html-description": "describes a helm release to be deployed."
        },
        "JSONPatch": {
            "additionalProperties": false,
            "description": "patch to be applied by a profile.",
            "preferredOrder": [
                "op",
                "path",
                "from",
                "value"
            ],
            "properties": {
                "from": {
                    "description": "source position in the yaml, used for `copy` or `move` operations.",
                    "type": "string",
                    "x-intellij-html-description": "source position in the yaml, used for <code>copy</code> or <code>move</code> operations."
                },
                "op": {
                    "default": "replace",
                    "description": "operation carried by the patch: `add`, `remove`, `replace`, `move`, `copy` or `test`.",
                    "type": "string",
                    "x-intellij-html-description": "operation carried by the patch: <code>add</code>, <code>remove</code>, <code>replace</code>, <code>move</code>, <code>copy</code> or <code>test</code>."
                },
                "path": {
                    "description": "position in the yaml where the operation takes place. For example, this targets the `dockerfile` of the first artifact built.",
                    "examples": [
                        "/build/artifacts/0/docker/dockerfile"
                    ],
                    "type": "string",
                    "x-intellij-html-description": "position in the yaml where the operation takes place. For example, this targets the <code>dockerfile</code> of the first artifact built."
                },
                "value": {
                    "description": "value to apply. Can be any portion of yaml.",
                    "x-intellij-html-description": "value to apply. Can be any portion of yaml."
                }
            },
            "required": [
                "path"
            ],
            "x-intellij-html-description": "patch to be applied by a profile."
        },
        "JibGradleArtifact": {
            "additionalProperties": false,
            "description": "*alpha* builds images using the [Jib plugin for Gradle](https://github.com/GoogleContainerTools/jib/tree/master/jib-gradle-plugin).",
            "preferredOrder": [
                "project",
                "args"
            ],
            "properties": {
                "args": {
                    "default": "[]",
                    "description": "additional build flags passed to Gradle.",
                    "examples": [
                        "[\"--no-build-cache\"]"
                    ],
                    "items": {
                        "type": "string"
                    },
                    "type": "array",
                    "x-intellij-html-description": "additional build flags passed to Gradle."
                },
                "project": {
                    "description": "selects which Gradle project to build.",
                    "type": "string",
                    "x-intellij-html-description": "selects which Gradle project to build."
                }
            },
            "x-intellij-html-description": "<em>alpha</em> builds images using the <a href=\"https://github.com/GoogleContainerTools/jib/tree/master/jib-gradle-plugin\">Jib plugin for Gradle</a>."
        },
        "JibMavenArtifact": {
            "additionalProperties": false,
            "description": "*alpha* builds images using the [Jib plugin for Maven](https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin).",
            "preferredOrder": [
                "module",
                "profile",
                "args"
            ],
            "properties": {
                "args": {
                    "default": "[]",
                    "description": "additional build flags passed to Maven.",
                    "examples": [
                        "[\"-x\", \"-DskipTests\"]"
                    ],
                    "items": {
                        "type": "string"
                    },
                    "type": "array",
                    "x-intellij-html-description": "additional build flags passed to Maven."
                },
                "module": {
                    "description": "selects which Maven module to build, for a multi module project.",
                    "type": "string",
                    "x-intellij-html-description": "selects which Maven module to build, for a multi module project."
                },
                "profile": {
                    "description": "selects which Maven profile to activate.",
                    "type": "string",
                    "x-intellij-html-description": "selects which Maven profile to activate."
                }
            },
            "x-intellij-html-description": "<em>alpha</em> builds images using the <a href=\"https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin\">Jib plugin for Maven</a>."
        },
        "KanikoArtifact": {
            "additionalProperties": false,
            "description": "*alpha* describes an artifact built from a Dockerfile, with kaniko.",
            "preferredOrder": [
                "flags",
                "dockerfile",
                "target",
                "buildArgs",
                "buildContext",
                "image",
                "cache"
            ],
            "properties": {
                "buildArgs": {
                    "additionalProperties": {
                        "type": "string"
                    },
                    "default": "{}",
                    "description": "arguments passed to the docker build. It also accepts environment variables via the go template syntax.",
                    "examples": [
                        "{\"key1\": \"value1\", \"key2\": \"value2\", \"key3\": \"{{.ENV_VARIABLE}}\"}"
                    ],
                    "type": "object",
                    "x-intellij-html-description": "arguments passed to the docker build. It also accepts environment variables via the go template syntax."
                },
                "buildContext": {
                    "$ref": "#/definitions/KanikoBuildContext",
                    "description": "where the build context for this artifact resides.",
                    "x-intellij-html-description": "where the build context for this artifact resides."
                },
                "cache": {
                    "$ref": "#/definitions/KanikoCache",
                    "description": "configures Kaniko caching. If a cache is specified, Kaniko will use a remote cache which will speed up builds.",
                    "x-intellij-html-description": "configures Kaniko caching. If a cache is specified, Kaniko will use a remote cache which will speed up builds."
                },
                "dockerfile": {
                    "default": "Dockerfile",
                    "description": "locates the Dockerfile relative to workspace.",
                    "type": "string",
                    "x-intellij-html-description": "locates the Dockerfile relative to workspace."
                },
                "flags": {
                    "default": "[]",
                    "description": "additional flags to be passed to Kaniko command line. See [Kaniko Additional Flags](https://github.com/GoogleContainerTools/kaniko#additional-flags). Deprecated - instead the named, unique fields should be used, e.g. `buildArgs`, `cache`, `target`.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array",
                    "x-intellij-html-description": "additional flags to be passed to Kaniko command line. See <a href=\"https://github.com/GoogleContainerTools/kaniko#additional-flags\">Kaniko Additional Flags</a>. Deprecated - instead the named, unique fields should be used, e.g. <code>buildArgs</code>, <code>cache</code>, <code>target</code>."
                },
                "image": {
                    "description": "Docker image used by the Kaniko pod. Defaults to the latest released version of `gcr.io/kaniko-project/executor`.",
                    "type": "string",
                    "x-intellij-html-description": "Docker image used by the Kaniko pod. Defaults to the latest released version of <code>gcr.io/kaniko-project/executor</code>."
                },
                "target": {
                    "description": "Dockerfile target name to build.",
                    "type": "string",
                    "x-intellij-html-description": "Dockerfile target name to build."
                }
            },
            "x-intellij-html-description": "<em>alpha</em> describes an artifact built from a Dockerfile, with kaniko."
        },
        "KanikoBuildContext": {
            "additionalProperties": false,
            "description": "contains the different fields available to specify a Kaniko build context.",
            "preferredOrder": [
                "gcsBucket",
                "localDir"
            ],
            "properties": {
                "gcsBucket": {
                    "description": "GCS bucket to which sources are uploaded. Kaniko will need access to that bucket to download the sources.",
                    "type": "string",
                    "x-intellij-html-description": "GCS bucket to which sources are uploaded. Kaniko will need access to that bucket to download the sources."
                },
                "localDir": {
                    "$ref": "#/definitions/LocalDir",
                    "description": "configures how Kaniko mounts sources directly via an `emptyDir` volume.",
                    "x-intellij-html-description": "configures how Kaniko mounts sources directly via an <code>emptyDir</code> volume."
                }
            },
            "x-intellij-html-description": "contains the different fields available to specify a Kaniko build context."
        },
        "KanikoCache": {
            "additionalProperties": false,
            "description": "configures Kaniko caching. If a cache is specified, Kaniko will use a remote cache which will speed up builds.",
            "preferredOrder": [
                "repo"
            ],
            "properties": {
                "repo": {
                    "description": "a remote repository to store cached layers. If none is specified, one will be inferred from the image name. See [Kaniko Caching](https://github.com/GoogleContainerTools/kaniko#caching).",
                    "type": "string",
                    "x-intellij-html-description": "a remote repository to store cached layers. If none is specified, one will be inferred from the image name. See <a href=\"https://github.com/GoogleContainerTools/kaniko#caching\">Kaniko Caching</a>."
                }
            },
            "x-intellij-html-description": "configures Kaniko caching. If a cache is specified, Kaniko will use a remote cache which will speed up builds."
        },
        "KubectlDeploy": {
            "additionalProperties": false,
            "description": "*beta* uses a client side `kubectl apply` to deploy manifests. You'll need a `kubectl` CLI version installed that's compatible with your cluster.",
            "preferredOrder": [
                "manifests",
                "remoteManifests",
                "flags"
            ],
            "properties": {
                "flags": {
                    "$ref": "#/definitions/KubectlFlags",
                    "description": "additional flags passed to `kubectl`.",
                    "x-intellij-html-description": "additional flags passed to <code>kubectl</code>."
                },
                "manifests": {
                    "default": "[\"k8s/*.yaml\"]",
                    "description": "the Kubernetes yaml or json manifests.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array",
                    "x-intellij-html-description": "the Kubernetes yaml or json manifests."
                },
                "remoteManifests": {
                    "default": "[]",
                    "description": "Kubernetes manifests in remote clusters.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array",
                    "x-intellij-html-description": "Kubernetes manifests in remote clusters."
                }
            },
            "x-intellij-html-description": "<em>beta</em> uses a client side <code>kubectl apply</code> to deploy manifests. You'll need a <code>kubectl</code> CLI version installed that's compatible with your cluster."
        },
        "KubectlFlags": {
            "additionalProperties": false,
            "description": "additional flags passed on the command line to kubectl either on every command (Global), on creations (Apply) or deletions (Delete).",
            "preferredOrder": [
                "global",
                "apply",
                "delete"
            ],
            "properties": {
                "apply": {
                    "default": "[]",
                    "description": "additional flags passed on creations (`kubectl apply`).",
                    "items": {
                        "type": "string"
                    },
                    "type": "array",
                    "x-intellij-html-description": "additional flags passed on creations (<code>kubectl apply</code>)."
                },
                "delete": {
                    "default": "[]",
                    "description": "additional flags passed on deletions (`kubectl delete`).",
                    "items": {
                        "type": "string"
                    },
                    "type": "array",
                    "x-intellij-html-description": "additional flags passed on deletions (<code>kubectl delete</code>)."
                },
                "global": {
                    "default": "[]",
                    "description": "additional flags passed on every command.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array",
                    "x-intellij-html-description": "additional flags passed on every command."
                }
            },
            "x-intellij-html-description": "additional flags passed on the command line to kubectl either on every command (Global), on creations (Apply) or deletions (Delete)."
        },
        "KustomizeDeploy": {
            "additionalProperties": false,
            "description": "*beta* uses the `kustomize` CLI to \"patch\" a deployment for a target environment.",
            "preferredOrder": [
                "path",
                "flags"
            ],
            "properties": {
                "flags": {
                    "$ref": "#/definitions/KubectlFlags",
                    "description": "additional flags passed to `kubectl`.",
                    "x-intellij-html-description": "additional flags passed to <code>kubectl</code>."
                },
                "path": {
                    "default": ".",
                    "description": "path to Kustomization files.",
                    "type": "string",
                    "x-intellij-html-description": "path to Kustomization files."
                }
            },
            "x-intellij-html-description": "<em>beta</em> uses the <code>kustomize</code> CLI to &quot;patch&quot; a deployment for a target environment."
        },
        "LocalBuild": {
            "additionalProperties": false,
            "description": "*beta* describes how to do a build on the local docker daemon and optionally push to a repository.",
            "preferredOrder": [
                "push",
                "useDockerCLI",
                "useBuildkit"
            ],
            "properties": {
                "push": {
                    "description": "should images be pushed to a registry. If not specified, images are pushed only if the current Kubernetes context connects to a remote cluster.",
                    "type": "boolean",
                    "x-intellij-html-description": "should images be pushed to a registry. If not specified, images are pushed only if the current Kubernetes context connects to a remote cluster."
                },
                "useBuildkit": {
                    "default": "false",
                    "description": "use BuildKit to build Docker images.",
                    "type": "boolean",
                    "x-intellij-html-description": "use BuildKit to build Docker images."
                },
                "useDockerCLI": {
                    "default": "false",
                    "description": "use `docker` command-line interface instead of Docker Engine APIs.",
                    "type": "boolean",
                    "x-intellij-html-description": "use <code>docker</code> command-line interface instead of Docker Engine APIs."
                }
            },
            "x-intellij-html-description": "<em>beta</em> describes how to do a build on the local docker daemon and optionally push to a repository."
        },
        "LocalDir": {
            "additionalProperties": false,
            "description": "configures how Kaniko mounts sources directly via an `emptyDir` volume.",
            "preferredOrder": [
                "initImage"
            ],
            "properties": {
                "initImage": {
                    "description": "image used to run init container which mounts kaniko context.",
                    "type": "string",
                    "x-intellij-html-description": "image used to run init container which mounts kaniko context."
                }
            },
            "x-intellij-html-description": "configures how Kaniko mounts sources directly via an <code>emptyDir</code> volume."
        },
        "Profile": {
            "additionalProperties": false,
            "description": "*beta* profiles are used to override any `build`, `test` or `deploy` configuration.",
            "preferredOrder": [
                "name",
                "build",
                "test",
                "deploy",
                "patches",
                "activation"
            ],
            "properties": {
                "activation": {
                    "description": "criteria by which a profile can be auto-activated. The profile is auto-activated if any one of the activations are triggered. An activation is triggered if all of the criteria (env, kubeContext, command) are triggered.",
                    "items": {
                        "$ref": "#/definitions/Activation"
                    },
                    "type": "array",
                    "x-intellij-html-description": "criteria by which a profile can be auto-activated. The profile is auto-activated if any one of the activations are triggered. An activation is triggered if all of the criteria (env, kubeContext, command) are triggered."
                },
                "build": {
                    "$ref": "#/definitions/BuildConfig",
                    "description": "describes how images are built.",
                    "x-intellij-html-description": "describes how images are built."
                },
                "deploy": {
                    "$ref": "#/definitions/DeployConfig",
                    "description": "describes how images are deployed.",
                    "x-intellij-html-description": "describes how images are deployed."
                },
                "name": {
                    "description": "a unique profile name.",
                    "examples": [
                        "profile-prod"
                    ],
                    "type": "string",
                    "x-intellij-html-description": "a unique profile name."
                },
                "patches": {
                    "description": "patches applied to the configuration. Patches use the JSON patch notation.",
                    "items": {
                        "$ref": "#/definitions/JSONPatch"
                    },
                    "type": "array",
                    "x-intellij-html-description": "patches applied to the configuration. Patches use the JSON patch notation."
                },
                "test": {
                    "description": "describes how images are tested.",
                    "items": {
                        "$ref": "#/definitions/TestCase"
                    },
                    "type": "array",
                    "x-intellij-html-description": "describes how images are tested."
                }
            },
            "required": [
                "name"
            ],
            "x-intellij-html-description": "<em>beta</em> profiles are used to override any <code>build</code>, <code>test</code> or <code>deploy</code> configuration."
        },
        "ResourceRequirement": {
            "additionalProperties": false,
            "description": "stores the CPU/Memory requirements for the pod.",
            "preferredOrder": [
                "cpu",
                "memory"
            ],
            "properties": {
                "cpu": {
                    "description": "the number cores to be used.",
                    "examples": [
                        "2`, `2.0` or `200m"
                    ],
                    "type": "string",
                    "x-intellij-html-description": "the number cores to be used."
                },
                "memory": {
                    "description": "the amount of memory to allocate to the pod.",
                    "examples": [
                        "1Gi` or `1000Mi"
                    ],
                    "type": "string",
                    "x-intellij-html-description": "the amount of memory to allocate to the pod."
                }
            },
            "x-intellij-html-description": "stores the CPU/Memory requirements for the pod."
        },
        "ResourceRequirements": {
            "additionalProperties": false,
            "description": "describes the resource requirements for the kaniko pod.",
            "preferredOrder": [
                "requests",
                "limits"
            ],
            "properties": {
                "limits": {
                    "$ref": "#/definitions/ResourceRequirement",
                    "description": "[resource limits](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container) for the Kaniko pod.",
                    "x-intellij-html-description": "<a href=\"https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container\">resource limits</a> for the Kaniko pod."
                },
                "requests": {
                    "$ref": "#/definitions/ResourceRequirement",
                    "description": "[resource requests](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container) for the Kaniko pod.",
                    "x-intellij-html-description": "<a href=\"https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container\">resource requests</a> for the Kaniko pod."
                }
            },
            "x-intellij-html-description": "describes the resource requirements for the kaniko pod."
        },
        "ShaTagger": {
            "description": "*beta* tags images with their sha256 digest.",
            "x-intellij-html-description": "<em>beta</em> tags images with their sha256 digest."
        },
        "SkaffoldConfig": {
            "additionalProperties": false,
            "description": "holds the fields parsed from the Skaffold configuration file (skaffold.yaml).",
            "preferredOrder": [
                "apiVersion",
                "kind",
                "build",
                "test",
                "deploy",
                "profiles"
            ],
            "properties": {
                "apiVersion": {
                    "description": "version of the configuration.",
                    "type": "string",
                    "x-intellij-html-description": "version of the configuration."
                },
                "build": {
                    "$ref": "#/definitions/BuildConfig",
                    "description": "describes how images are built.",
                    "x-intellij-html-description": "describes how images are built."
                },
                "deploy": {
                    "$ref": "#/definitions/DeployConfig",
                    "description": "describes how images are deployed.",
                    "x-intellij-html-description": "describes how images are deployed."
                },
                "kind": {
                    "default": "Config",
                    "description": "always `Config`.",
                    "type": "string",
                    "x-intellij-html-description": "always <code>Config</code>."
                },
                "profiles": {
                    "description": "*beta* can override be used to `build`, `test` or `deploy` configuration.",
                    "items": {
                        "$ref": "#/definitions/Profile"
                    },
                    "type": "array",
                    "x-intellij-html-description": "<em>beta</em> can override be used to <code>build</code>, <code>test</code> or <code>deploy</code> configuration."
                },
                "test": {
                    "description": "describes how images are tested.",
                    "items": {
                        "$ref": "#/definitions/TestCase"
                    },
                    "type": "array",
                    "x-intellij-html-description": "describes how images are tested."
                }
            },
            "required": [
                "apiVersion",
                "kind"
            ],
            "x-intellij-html-description": "holds the fields parsed from the Skaffold configuration file (skaffold.yaml)."
        },
        "Sync": {
            "additionalProperties": false,
            "description": "*alpha* specifies what files to sync into the container. This is a list of sync rules indicating the intent to sync for source files.",
            "preferredOrder": [
                "manual"
            ],
            "properties": {
                "manual": {
                    "description": "manual sync rules indicating the source and destination.",
                    "items": {
                        "$ref": "#/definitions/SyncRule"
                    },
                    "type": "array",
                    "x-intellij-html-description": "manual sync rules indicating the source and destination."
                }
            },
            "x-intellij-html-description": "<em>alpha</em> specifies what files to sync into the container. This is a list of sync rules indicating the intent to sync for source files."
        },
        "SyncRule": {
            "additionalProperties": false,
            "description": "specifies which local files to sync to remote folders.",
            "preferredOrder": [
                "src",
                "dest",
                "strip"
            ],
            "properties": {
                "dest": {
                    "description": "destination path in the container where the files should be synced to.",
                    "examples": [
                        "\"app/\""
                    ],
                    "type": "string",
                    "x-intellij-html-description": "destination path in the container where the files should be synced to."
                },
                "src": {
                    "description": "a glob pattern to match local paths against.",
                    "examples": [
                        "\"css/**/*.css\""
                    ],
                    "type": "string",
                    "x-intellij-html-description": "a glob pattern to match local paths against."
                },
                "strip": {
                    "description": "specifies the path prefix to remove from the source path when transplanting the files into the destination folder.",
                    "examples": [
                        "\"css/\""
                    ],
                    "type": "string",
                    "x-intellij-html-description": "specifies the path prefix to remove from the source path when transplanting the files into the destination folder."
                }
            },
            "required": [
                "src",
                "dest"
            ],
            "x-intellij-html-description": "specifies which local files to sync to remote folders."
        },
        "TagPolicy": {
            "additionalProperties": false,
            "description": "contains all the configuration for the tagging step.",
            "preferredOrder": [
                "gitCommit",
                "sha256",
                "envTemplate",
                "dateTime"
            ],
            "properties": {
                "dateTime": {
                    "$ref": "#/definitions/DateTimeTagger",
                    "description": "*beta* tags images with the build timestamp.",
                    "x-intellij-html-description": "<em>beta</em> tags images with the build timestamp."
                },
                "envTemplate": {
                    "$ref": "#/definitions/EnvTemplateTagger",
                    "description": "*beta* tags images with a configurable template string.",
                    "x-intellij-html-description": "<em>beta</em> tags images with a configurable template string."
                },
                "gitCommit": {
                    "$ref": "#/definitions/GitTagger",
                    "description": "*beta* tags images with the git tag or commit of the artifact's workspace.",
                    "x-intellij-html-description": "<em>beta</em> tags images with the git tag or commit of the artifact's workspace."
                },
                "sha256": {
                    "$ref": "#/definitions/ShaTagger",
                    "description": "*beta* tags images with their sha256 digest.",
                    "x-intellij-html-description": "<em>beta</em> tags images with their sha256 digest."
                }
            },
            "x-intellij-html-description": "contains all the configuration for the tagging step."
        },
        "TestCase": {
            "additionalProperties": false,
            "description": "a list of structure tests to run on images that Skaffold builds.",
            "preferredOrder": [
                "image",
                "structureTests"
            ],
            "properties": {
                "image": {
                    "description": "artifact on which to run those tests.",
                    "examples": [
                        "gcr.io/k8s-skaffold/example"
                    ],
                    "type": "string",
                    "x-intellij-html-description": "artifact on which to run those tests."
                },
                "structureTests": {
                    "default": "[]",
                    "description": "the [Container Structure Tests](https://github.com/GoogleContainerTools/container-structure-test) to run on that artifact.",
                    "examples": [
                        "[\"./test/*\"]"
                    ],
                    "items": {
                        "type": "string"
                    },
                    "type": "array",
                    "x-intellij-html-description": "the <a href=\"https://github.com/GoogleContainerTools/container-structure-test\">Container Structure Tests</a> to run on that artifact."
                }
            },
            "required": [
                "image"
            ],
            "x-intellij-html-description": "a list of structure tests to run on images that Skaffold builds."
        }
    },
    "type": "object"
}