<commit_before>{
  "type": "object",
  "anyOf": [
    {
      "$ref": "#/definitions/SkaffoldConfig"
    }
  ],
  "$schema": "http://json-schema-org/draft-07/schema#",
  "definitions": {
    "Activation": {
      "properties": {
        "command": {
          "type": "string",
          "description": "a Skaffold command for which the profile is auto-activated.",
          "x-intellij-html-description": "a Skaffold command for which the profile is auto-activated.",
          "examples": [
            "dev"
          ]
        },
        "env": {
          "type": "string",
          "description": "a `key=value` pair. The profile is auto-activated if an Environment Variable `key` has value `value`.",
          "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>.",
          "examples": [
            "ENV=production"
          ]
        },
        "kubeContext": {
          "type": "string",
          "description": "a Kubernetes context for which the profile is auto-activated.",
          "x-intellij-html-description": "a Kubernetes context for which the profile is auto-activated.",
          "examples": [
            "minikube"
          ]
        }
      },
      "preferredOrder": [
        "env",
        "kubeContext",
        "command"
      ],
      "additionalProperties": false,
      "description": "criteria by which a profile is auto-activated.",
      "x-intellij-html-description": "criteria by which a profile is auto-activated."
    },
    "Artifact": {
      "required": [
        "image"
      ],
      "anyOf": [
        {
          "properties": {
            "context": {
              "type": "string",
              "description": "directory containing the artifact's sources.",
              "x-intellij-html-description": "directory containing the artifact's sources.",
              "default": "."
            },
            "image": {
              "type": "string",
              "description": "name of the image to be built.",
              "x-intellij-html-description": "name of the image to be built.",
              "examples": [
                "gcr.io/k8s-skaffold/example"
              ]
            },
            "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."
            }
          },
          "preferredOrder": [
            "image",
            "context",
            "sync"
          ],
          "additionalProperties": false
        },
        {
          "properties": {
            "context": {
              "type": "string",
              "description": "directory containing the artifact's sources.",
              "x-intellij-html-description": "directory containing the artifact's sources.",
              "default": "."
            },
            "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": {
              "type": "string",
              "description": "name of the image to be built.",
              "x-intellij-html-description": "name of the image to be built.",
              "examples": [
                "gcr.io/k8s-skaffold/example"
              ]
            },
            "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."
            }
          },
          "preferredOrder": [
            "image",
            "context",
            "sync",
            "docker"
          ],
          "additionalProperties": false
        },
        {
          "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": {
              "type": "string",
              "description": "directory containing the artifact's sources.",
              "x-intellij-html-description": "directory containing the artifact's sources.",
              "default": "."
            },
            "image": {
              "type": "string",
              "description": "name of the image to be built.",
              "x-intellij-html-description": "name of the image to be built.",
              "examples": [
                "gcr.io/k8s-skaffold/example"
              ]
            },
            "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."
            }
          },
          "preferredOrder": [
            "image",
            "context",
            "sync",
            "bazel"
          ],
          "additionalProperties": false
        },
        {
          "properties": {
            "context": {
              "type": "string",
              "description": "directory containing the artifact's sources.",
              "x-intellij-html-description": "directory containing the artifact's sources.",
              "default": "."
            },
            "image": {
              "type": "string",
              "description": "name of the image to be built.",
              "x-intellij-html-description": "name of the image to be built.",
              "examples": [
                "gcr.io/k8s-skaffold/example"
              ]
            },
            "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."
            }
          },
          "preferredOrder": [
            "image",
            "context",
            "sync",
            "jibMaven"
          ],
          "additionalProperties": false
        },
        {
          "properties": {
            "context": {
              "type": "string",
              "description": "directory containing the artifact's sources.",
              "x-intellij-html-description": "directory containing the artifact's sources.",
              "default": "."
            },
            "image": {
              "type": "string",
              "description": "name of the image to be built.",
              "x-intellij-html-description": "name of the image to be built.",
              "examples": [
                "gcr.io/k8s-skaffold/example"
              ]
            },
            "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."
            }
          },
          "preferredOrder": [
            "image",
            "context",
            "sync",
            "jibGradle"
          ],
          "additionalProperties": false
        },
        {
          "properties": {
            "context": {
              "type": "string",
              "description": "directory containing the artifact's sources.",
              "x-intellij-html-description": "directory containing the artifact's sources.",
              "default": "."
            },
            "image": {
              "type": "string",
              "description": "name of the image to be built.",
              "x-intellij-html-description": "name of the image to be built.",
              "examples": [
                "gcr.io/k8s-skaffold/example"
              ]
            },
            "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."
            }
          },
          "preferredOrder": [
            "image",
            "context",
            "sync",
            "kaniko"
          ],
          "additionalProperties": false
        },
        {
          "properties": {
            "context": {
              "type": "string",
              "description": "directory containing the artifact's sources.",
              "x-intellij-html-description": "directory containing the artifact's sources.",
              "default": "."
            },
            "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": {
              "type": "string",
              "description": "name of the image to be built.",
              "x-intellij-html-description": "name of the image to be built.",
              "examples": [
                "gcr.io/k8s-skaffold/example"
              ]
            },
            "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."
            }
          },
          "preferredOrder": [
            "image",
            "context",
            "sync",
            "custom"
          ],
          "additionalProperties": false
        }
      ],
      "description": "items that need to be built, along with the context in which they should be built.",
      "x-intellij-html-description": "items that need to be built, along with the context in which they should be built."
    },
    "BazelArtifact": {
      "required": [
        "target"
      ],
      "properties": {
        "args": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "additional args to pass to `bazel build`.",
          "x-intellij-html-description": "additional args to pass to <code>bazel build</code>.",
          "default": "[]",
          "examples": [
            "[\"-flag\", \"--otherflag\"]"
          ]
        },
        "target": {
          "type": "string",
          "description": "`bazel build` target to run.",
          "x-intellij-html-description": "<code>bazel build</code> target to run.",
          "examples": [
            "//:skaffold_example.tar"
          ]
        }
      },
      "preferredOrder": [
        "target",
        "args"
      ],
      "additionalProperties": false,
      "description": "*beta* describes an artifact built with [Bazel](https://bazel.build/).",
      "x-intellij-html-description": "<em>beta</em> describes an artifact built with <a href=\"https://bazel.build/\">Bazel</a>."
    },
    "BuildConfig": {
      "anyOf": [
        {
          "properties": {
            "artifacts": {
              "items": {
                "$ref": "#/definitions/Artifact"
              },
              "type": "array",
              "description": "the images you're going to be building.",
              "x-intellij-html-description": "the images you're going to be building."
            },
            "insecureRegistries": {
              "items": {
                "type": "string"
              },
              "type": "array",
              "description": "a list of registries declared by the user to be insecure. These registries will be connected to via HTTP instead of HTTPS.",
              "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.",
              "default": "[]"
            },
            "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>."
            }
          },
          "preferredOrder": [
            "artifacts",
            "insecureRegistries",
            "tagPolicy"
          ],
          "additionalProperties": false
        },
        {
          "properties": {
            "artifacts": {
              "items": {
                "$ref": "#/definitions/Artifact"
              },
              "type": "array",
              "description": "the images you're going to be building.",
              "x-intellij-html-description": "the images you're going to be building."
            },
            "insecureRegistries": {
              "items": {
                "type": "string"
              },
              "type": "array",
              "description": "a list of registries declared by the user to be insecure. These registries will be connected to via HTTP instead of HTTPS.",
              "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.",
              "default": "[]"
            },
            "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>."
            }
          },
          "preferredOrder": [
            "artifacts",
            "insecureRegistries",
            "tagPolicy",
            "local"
          ],
          "additionalProperties": false
        },
        {
          "properties": {
            "artifacts": {
              "items": {
                "$ref": "#/definitions/Artifact"
              },
              "type": "array",
              "description": "the images you're going to be building.",
              "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": {
              "items": {
                "type": "string"
              },
              "type": "array",
              "description": "a list of registries declared by the user to be insecure. These registries will be connected to via HTTP instead of HTTPS.",
              "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.",
              "default": "[]"
            },
            "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>."
            }
          },
          "preferredOrder": [
            "artifacts",
            "insecureRegistries",
            "tagPolicy",
            "googleCloudBuild"
          ],
          "additionalProperties": false
        },
        {
          "properties": {
            "artifacts": {
              "items": {
                "$ref": "#/definitions/Artifact"
              },
              "type": "array",
              "description": "the images you're going to be building.",
              "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": {
              "items": {
                "type": "string"
              },
              "type": "array",
              "description": "a list of registries declared by the user to be insecure. These registries will be connected to via HTTP instead of HTTPS.",
              "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.",
              "default": "[]"
            },
            "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>."
            }
          },
          "preferredOrder": [
            "artifacts",
            "insecureRegistries",
            "tagPolicy",
            "cluster"
          ],
          "additionalProperties": false
        }
      ],
      "description": "contains all the configuration for the build steps.",
      "x-intellij-html-description": "contains all the configuration for the build steps."
    },
    "ClusterDetails": {
      "properties": {
        "HTTPS_PROXY": {
          "type": "string",
          "description": "for kaniko pod.",
          "x-intellij-html-description": "for kaniko pod."
        },
        "HTTP_PROXY": {
          "type": "string",
          "description": "for kaniko pod.",
          "x-intellij-html-description": "for kaniko pod."
        },
        "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": {
          "type": "string",
          "description": "Kubernetes namespace. Defaults to current namespace in Kubernetes configuration.",
          "x-intellij-html-description": "Kubernetes namespace. Defaults to current namespace in Kubernetes configuration."
        },
        "pullSecret": {
          "type": "string",
          "description": "path to the Google Cloud service account secret key file.",
          "x-intellij-html-description": "path to the Google Cloud service account secret key file."
        },
        "pullSecretName": {
          "type": "string",
          "description": "name of the Kubernetes secret for pulling the files from the build context and pushing the final image. If given, the secret needs to contain the Google Cloud service account secret key under the key `kaniko-secret`.",
          "x-intellij-html-description": "name of the Kubernetes secret for pulling the files from the build context and pushing the final image. If given, the secret needs to contain the Google Cloud service account secret key under the key <code>kaniko-secret</code>.",
          "default": "kaniko-secret"
        },
        "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": {
          "type": "string",
          "description": "amount of time (in seconds) that this build is allowed to run. Defaults to 20 minutes (`20m`).",
          "x-intellij-html-description": "amount of time (in seconds) that this build is allowed to run. Defaults to 20 minutes (<code>20m</code>)."
        }
      },
      "preferredOrder": [
        "HTTP_PROXY",
        "HTTPS_PROXY",
        "pullSecret",
        "pullSecretName",
        "namespace",
        "timeout",
        "dockerConfig",
        "resources"
      ],
      "additionalProperties": false,
      "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."
    },
    "CustomArtifact": {
      "properties": {
        "buildCommand": {
          "type": "string",
          "description": "command executed to build the image.",
          "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."
        }
      },
      "preferredOrder": [
        "buildCommand",
        "dependencies"
      ],
      "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.",
      "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": {
      "properties": {
        "command": {
          "type": "string",
          "description": "represents a custom command that skaffold executes to obtain dependencies. The output of this command *must* be a valid JSON array.",
          "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": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "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`.",
          "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>.",
          "default": "[]"
        },
        "paths": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "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": "should be set to the file dependencies for this artifact, so that the skaffold file watcher knows when to rebuild and perform file synchronization.",
          "default": "[]"
        }
      },
      "preferredOrder": [
        "dockerfile",
        "command",
        "paths",
        "ignore"
      ],
      "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.",
      "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": {
      "properties": {
        "format": {
          "type": "string",
          "description": "formats the date and time. See [#Time.Format](https://golang.org/pkg/time/#Time.Format).",
          "x-intellij-html-description": "formats the date and time. See <a href=\"https://golang.org/pkg/time/#Time.Format\">#Time.Format</a>.",
          "default": "2006-01-02_15-04-05.999_MST"
        },
        "timezone": {
          "type": "string",
          "description": "sets the timezone for the date and time. See [Time.LoadLocation](https://golang.org/pkg/time/#Time.LoadLocation). Defaults to the local timezone.",
          "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."
        }
      },
      "preferredOrder": [
        "format",
        "timezone"
      ],
      "additionalProperties": false,
      "description": "*beta* tags images with the build timestamp.",
      "x-intellij-html-description": "<em>beta</em> tags images with the build timestamp."
    },
    "DeployConfig": {
      "anyOf": [
        {
          "properties": {
            "statusCheckDeadlineSeconds": {
              "type": "integer",
              "description": "*beta* deadline for deployments to stabilize in seconds.",
              "x-intellij-html-description": "<em>beta</em> deadline for deployments to stabilize in seconds."
            }
          },
          "preferredOrder": [
            "statusCheckDeadlineSeconds"
          ],
          "additionalProperties": false
        },
        {
          "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."
            },
            "statusCheckDeadlineSeconds": {
              "type": "integer",
              "description": "*beta* deadline for deployments to stabilize in seconds.",
              "x-intellij-html-description": "<em>beta</em> deadline for deployments to stabilize in seconds."
            }
          },
          "preferredOrder": [
            "statusCheckDeadlineSeconds",
            "helm"
          ],
          "additionalProperties": false
        },
        {
          "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."
            },
            "statusCheckDeadlineSeconds": {
              "type": "integer",
              "description": "*beta* deadline for deployments to stabilize in seconds.",
              "x-intellij-html-description": "<em>beta</em> deadline for deployments to stabilize in seconds."
            }
          },
          "preferredOrder": [
            "statusCheckDeadlineSeconds",
            "kubectl"
          ],
          "additionalProperties": false
        },
        {
          "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."
            },
            "statusCheckDeadlineSeconds": {
              "type": "integer",
              "description": "*beta* deadline for deployments to stabilize in seconds.",
              "x-intellij-html-description": "<em>beta</em> deadline for deployments to stabilize in seconds."
            }
          },
          "preferredOrder": [
            "statusCheckDeadlineSeconds",
            "kustomize"
          ],
          "additionalProperties": false
        }
      ],
      "description": "contains all the configuration needed by the deploy steps.",
      "x-intellij-html-description": "contains all the configuration needed by the deploy steps."
    },
    "DockerArtifact": {
      "properties": {
        "buildArgs": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "description": "arguments passed to the docker build.",
          "x-intellij-html-description": "arguments passed to the docker build.",
          "default": "{}",
          "examples": [
            "{\"key1\": \"value1\", \"key2\": \"value2\"}"
          ]
        },
        "cacheFrom": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "the Docker images used as cache sources.",
          "x-intellij-html-description": "the Docker images used as cache sources.",
          "default": "[]",
          "examples": [
            "[\"golang:1.10.1-alpine3.7\", \"alpine:3.7\"]"
          ]
        },
        "dockerfile": {
          "type": "string",
          "description": "locates the Dockerfile relative to workspace.",
          "x-intellij-html-description": "locates the Dockerfile relative to workspace.",
          "default": "Dockerfile"
        },
        "network": {
          "type": "string",
          "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.",
          "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": {
          "type": "boolean",
          "description": "used to pass in --no-cache to docker build to prevent caching.",
          "x-intellij-html-description": "used to pass in --no-cache to docker build to prevent caching.",
          "default": "false"
        },
        "target": {
          "type": "string",
          "description": "Dockerfile target name to build.",
          "x-intellij-html-description": "Dockerfile target name to build."
        }
      },
      "preferredOrder": [
        "dockerfile",
        "target",
        "buildArgs",
        "network",
        "cacheFrom",
        "noCache"
      ],
      "additionalProperties": false,
      "description": "*beta* describes an artifact built from a Dockerfile, usually using `docker build`.",
      "x-intellij-html-description": "<em>beta</em> describes an artifact built from a Dockerfile, usually using <code>docker build</code>."
    },
    "DockerConfig": {
      "properties": {
        "path": {
          "type": "string",
          "description": "path to the docker `config.json`.",
          "x-intellij-html-description": "path to the docker <code>config.json</code>."
        },
        "secretName": {
          "type": "string",
          "description": "Kubernetes secret that contains the `config.json` Docker configuration. Note that the expected secret type is not 'kubernetes.io/dockerconfigjson' but 'Opaque'.",
          "x-intellij-html-description": "Kubernetes secret that contains the <code>config.json</code> Docker configuration. Note that the expected secret type is not 'kubernetes.io/dockerconfigjson' but 'Opaque'."
        }
      },
      "preferredOrder": [
        "path",
        "secretName"
      ],
      "additionalProperties": false,
      "description": "contains information about the docker `config.json` to mount.",
      "x-intellij-html-description": "contains information about the docker <code>config.json</code> to mount."
    },
    "DockerfileDependency": {
      "properties": {
        "buildArgs": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "description": "arguments passed to the docker build. It also accepts environment variables via the go template syntax.",
          "x-intellij-html-description": "arguments passed to the docker build. It also accepts environment variables via the go template syntax.",
          "default": "{}",
          "examples": [
            "{\"key1\": \"value1\", \"key2\": \"value2\", \"key3\": \"{{.ENV_VARIABLE}}\"}"
          ]
        },
        "path": {
          "type": "string",
          "description": "locates the Dockerfile relative to workspace.",
          "x-intellij-html-description": "locates the Dockerfile relative to workspace."
        }
      },
      "preferredOrder": [
        "path",
        "buildArgs"
      ],
      "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.",
      "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": {
      "required": [
        "template"
      ],
      "properties": {
        "template": {
          "type": "string",
          "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.",
          "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.",
          "examples": [
            "{{.RELEASE}}-{{.IMAGE_NAME}}"
          ]
        }
      },
      "preferredOrder": [
        "template"
      ],
      "additionalProperties": false,
      "description": "*beta* tags images with a configurable template string.",
      "x-intellij-html-description": "<em>beta</em> tags images with a configurable template string."
    },
    "GitTagger": {
      "properties": {
        "variant": {
          "type": "string",
          "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. `TreeSha`: use the full tree hash of the artifact workingdir. `AbbrevTreeSha`: use the abbreviated tree hash of the artifact workingdir.",
          "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. <code>TreeSha</code>: use the full tree hash of the artifact workingdir. <code>AbbrevTreeSha</code>: use the abbreviated tree hash of the artifact workingdir."
        }
      },
      "preferredOrder": [
        "variant"
      ],
      "additionalProperties": false,
      "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."
    },
    "GoogleCloudBuild": {
      "properties": {
        "diskSizeGb": {
          "type": "integer",
          "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).",
          "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": {
          "type": "string",
          "description": "image that runs a Docker build. See [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders).",
          "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>.",
          "default": "gcr.io/cloud-builders/docker"
        },
        "gradleImage": {
          "type": "string",
          "description": "image that runs a Gradle build. See [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders).",
          "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>.",
          "default": "gcr.io/cloud-builders/gradle"
        },
        "machineType": {
          "type": "string",
          "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).",
          "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": {
          "type": "string",
          "description": "image that runs a Maven build. See [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders).",
          "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>.",
          "default": "gcr.io/cloud-builders/mvn"
        },
        "projectId": {
          "type": "string",
          "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.",
          "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": {
          "type": "string",
          "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).",
          "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>."
        }
      },
      "preferredOrder": [
        "projectId",
        "diskSizeGb",
        "machineType",
        "timeout",
        "dockerImage",
        "mavenImage",
        "gradleImage"
      ],
      "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.",
      "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": {
      "properties": {
        "explicitRegistry": {<commit_msg>Update schema<commit_after>{
  "type": "object",
  "anyOf": [
    {
      "$ref": "#/definitions/SkaffoldConfig"
    }
  ],
  "$schema": "http://json-schema-org/draft-07/schema#",
  "definitions": {
    "Activation": {
      "properties": {
        "command": {
          "type": "string",
          "description": "a Skaffold command for which the profile is auto-activated.",
          "x-intellij-html-description": "a Skaffold command for which the profile is auto-activated.",
          "examples": [
            "dev"
          ]
        },
        "env": {
          "type": "string",
          "description": "a `key=value` pair. The profile is auto-activated if an Environment Variable `key` has value `value`.",
          "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>.",
          "examples": [
            "ENV=production"
          ]
        },
        "kubeContext": {
          "type": "string",
          "description": "a Kubernetes context for which the profile is auto-activated.",
          "x-intellij-html-description": "a Kubernetes context for which the profile is auto-activated.",
          "examples": [
            "minikube"
          ]
        }
      },
      "preferredOrder": [
        "env",
        "kubeContext",
        "command"
      ],
      "additionalProperties": false,
      "description": "criteria by which a profile is auto-activated.",
      "x-intellij-html-description": "criteria by which a profile is auto-activated."
    },
    "Artifact": {
      "required": [
        "image"
      ],
      "anyOf": [
        {
          "properties": {
            "context": {
              "type": "string",
              "description": "directory containing the artifact's sources.",
              "x-intellij-html-description": "directory containing the artifact's sources.",
              "default": "."
            },
            "image": {
              "type": "string",
              "description": "name of the image to be built.",
              "x-intellij-html-description": "name of the image to be built.",
              "examples": [
                "gcr.io/k8s-skaffold/example"
              ]
            },
            "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."
            }
          },
          "preferredOrder": [
            "image",
            "context",
            "sync"
          ],
          "additionalProperties": false
        },
        {
          "properties": {
            "context": {
              "type": "string",
              "description": "directory containing the artifact's sources.",
              "x-intellij-html-description": "directory containing the artifact's sources.",
              "default": "."
            },
            "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": {
              "type": "string",
              "description": "name of the image to be built.",
              "x-intellij-html-description": "name of the image to be built.",
              "examples": [
                "gcr.io/k8s-skaffold/example"
              ]
            },
            "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."
            }
          },
          "preferredOrder": [
            "image",
            "context",
            "sync",
            "docker"
          ],
          "additionalProperties": false
        },
        {
          "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": {
              "type": "string",
              "description": "directory containing the artifact's sources.",
              "x-intellij-html-description": "directory containing the artifact's sources.",
              "default": "."
            },
            "image": {
              "type": "string",
              "description": "name of the image to be built.",
              "x-intellij-html-description": "name of the image to be built.",
              "examples": [
                "gcr.io/k8s-skaffold/example"
              ]
            },
            "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."
            }
          },
          "preferredOrder": [
            "image",
            "context",
            "sync",
            "bazel"
          ],
          "additionalProperties": false
        },
        {
          "properties": {
            "context": {
              "type": "string",
              "description": "directory containing the artifact's sources.",
              "x-intellij-html-description": "directory containing the artifact's sources.",
              "default": "."
            },
            "image": {
              "type": "string",
              "description": "name of the image to be built.",
              "x-intellij-html-description": "name of the image to be built.",
              "examples": [
                "gcr.io/k8s-skaffold/example"
              ]
            },
            "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."
            }
          },
          "preferredOrder": [
            "image",
            "context",
            "sync",
            "jibMaven"
          ],
          "additionalProperties": false
        },
        {
          "properties": {
            "context": {
              "type": "string",
              "description": "directory containing the artifact's sources.",
              "x-intellij-html-description": "directory containing the artifact's sources.",
              "default": "."
            },
            "image": {
              "type": "string",
              "description": "name of the image to be built.",
              "x-intellij-html-description": "name of the image to be built.",
              "examples": [
                "gcr.io/k8s-skaffold/example"
              ]
            },
            "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."
            }
          },
          "preferredOrder": [
            "image",
            "context",
            "sync",
            "jibGradle"
          ],
          "additionalProperties": false
        },
        {
          "properties": {
            "context": {
              "type": "string",
              "description": "directory containing the artifact's sources.",
              "x-intellij-html-description": "directory containing the artifact's sources.",
              "default": "."
            },
            "image": {
              "type": "string",
              "description": "name of the image to be built.",
              "x-intellij-html-description": "name of the image to be built.",
              "examples": [
                "gcr.io/k8s-skaffold/example"
              ]
            },
            "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."
            }
          },
          "preferredOrder": [
            "image",
            "context",
            "sync",
            "kaniko"
          ],
          "additionalProperties": false
        },
        {
          "properties": {
            "context": {
              "type": "string",
              "description": "directory containing the artifact's sources.",
              "x-intellij-html-description": "directory containing the artifact's sources.",
              "default": "."
            },
            "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": {
              "type": "string",
              "description": "name of the image to be built.",
              "x-intellij-html-description": "name of the image to be built.",
              "examples": [
                "gcr.io/k8s-skaffold/example"
              ]
            },
            "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."
            }
          },
          "preferredOrder": [
            "image",
            "context",
            "sync",
            "custom"
          ],
          "additionalProperties": false
        }
      ],
      "description": "items that need to be built, along with the context in which they should be built.",
      "x-intellij-html-description": "items that need to be built, along with the context in which they should be built."
    },
    "BazelArtifact": {
      "required": [
        "target"
      ],
      "properties": {
        "args": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "additional args to pass to `bazel build`.",
          "x-intellij-html-description": "additional args to pass to <code>bazel build</code>.",
          "default": "[]",
          "examples": [
            "[\"-flag\", \"--otherflag\"]"
          ]
        },
        "target": {
          "type": "string",
          "description": "`bazel build` target to run.",
          "x-intellij-html-description": "<code>bazel build</code> target to run.",
          "examples": [
            "//:skaffold_example.tar"
          ]
        }
      },
      "preferredOrder": [
        "target",
        "args"
      ],
      "additionalProperties": false,
      "description": "*beta* describes an artifact built with [Bazel](https://bazel.build/).",
      "x-intellij-html-description": "<em>beta</em> describes an artifact built with <a href=\"https://bazel.build/\">Bazel</a>."
    },
    "BuildConfig": {
      "anyOf": [
        {
          "properties": {
            "artifacts": {
              "items": {
                "$ref": "#/definitions/Artifact"
              },
              "type": "array",
              "description": "the images you're going to be building.",
              "x-intellij-html-description": "the images you're going to be building."
            },
            "insecureRegistries": {
              "items": {
                "type": "string"
              },
              "type": "array",
              "description": "a list of registries declared by the user to be insecure. These registries will be connected to via HTTP instead of HTTPS.",
              "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.",
              "default": "[]"
            },
            "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>."
            }
          },
          "preferredOrder": [
            "artifacts",
            "insecureRegistries",
            "tagPolicy"
          ],
          "additionalProperties": false
        },
        {
          "properties": {
            "artifacts": {
              "items": {
                "$ref": "#/definitions/Artifact"
              },
              "type": "array",
              "description": "the images you're going to be building.",
              "x-intellij-html-description": "the images you're going to be building."
            },
            "insecureRegistries": {
              "items": {
                "type": "string"
              },
              "type": "array",
              "description": "a list of registries declared by the user to be insecure. These registries will be connected to via HTTP instead of HTTPS.",
              "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.",
              "default": "[]"
            },
            "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>."
            }
          },
          "preferredOrder": [
            "artifacts",
            "insecureRegistries",
            "tagPolicy",
            "local"
          ],
          "additionalProperties": false
        },
        {
          "properties": {
            "artifacts": {
              "items": {
                "$ref": "#/definitions/Artifact"
              },
              "type": "array",
              "description": "the images you're going to be building.",
              "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": {
              "items": {
                "type": "string"
              },
              "type": "array",
              "description": "a list of registries declared by the user to be insecure. These registries will be connected to via HTTP instead of HTTPS.",
              "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.",
              "default": "[]"
            },
            "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>."
            }
          },
          "preferredOrder": [
            "artifacts",
            "insecureRegistries",
            "tagPolicy",
            "googleCloudBuild"
          ],
          "additionalProperties": false
        },
        {
          "properties": {
            "artifacts": {
              "items": {
                "$ref": "#/definitions/Artifact"
              },
              "type": "array",
              "description": "the images you're going to be building.",
              "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": {
              "items": {
                "type": "string"
              },
              "type": "array",
              "description": "a list of registries declared by the user to be insecure. These registries will be connected to via HTTP instead of HTTPS.",
              "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.",
              "default": "[]"
            },
            "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>."
            }
          },
          "preferredOrder": [
            "artifacts",
            "insecureRegistries",
            "tagPolicy",
            "cluster"
          ],
          "additionalProperties": false
        }
      ],
      "description": "contains all the configuration for the build steps.",
      "x-intellij-html-description": "contains all the configuration for the build steps."
    },
    "ClusterDetails": {
      "properties": {
        "HTTPS_PROXY": {
          "type": "string",
          "description": "for kaniko pod.",
          "x-intellij-html-description": "for kaniko pod."
        },
        "HTTP_PROXY": {
          "type": "string",
          "description": "for kaniko pod.",
          "x-intellij-html-description": "for kaniko pod."
        },
        "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": {
          "type": "string",
          "description": "Kubernetes namespace. Defaults to current namespace in Kubernetes configuration.",
          "x-intellij-html-description": "Kubernetes namespace. Defaults to current namespace in Kubernetes configuration."
        },
        "pullSecret": {
          "type": "string",
          "description": "path to the Google Cloud service account secret key file.",
          "x-intellij-html-description": "path to the Google Cloud service account secret key file."
        },
        "pullSecretName": {
          "type": "string",
          "description": "name of the Kubernetes secret for pulling the files from the build context and pushing the final image. If given, the secret needs to contain the Google Cloud service account secret key under the key `kaniko-secret`.",
          "x-intellij-html-description": "name of the Kubernetes secret for pulling the files from the build context and pushing the final image. If given, the secret needs to contain the Google Cloud service account secret key under the key <code>kaniko-secret</code>.",
          "default": "kaniko-secret"
        },
        "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": {
          "type": "string",
          "description": "amount of time (in seconds) that this build is allowed to run. Defaults to 20 minutes (`20m`).",
          "x-intellij-html-description": "amount of time (in seconds) that this build is allowed to run. Defaults to 20 minutes (<code>20m</code>)."
        }
      },
      "preferredOrder": [
        "HTTP_PROXY",
        "HTTPS_PROXY",
        "pullSecret",
        "pullSecretName",
        "namespace",
        "timeout",
        "dockerConfig",
        "resources"
      ],
      "additionalProperties": false,
      "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."
    },
    "CustomArtifact": {
      "properties": {
        "buildCommand": {
          "type": "string",
          "description": "command executed to build the image.",
          "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."
        }
      },
      "preferredOrder": [
        "buildCommand",
        "dependencies"
      ],
      "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.",
      "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": {
      "properties": {
        "command": {
          "type": "string",
          "description": "represents a custom command that skaffold executes to obtain dependencies. The output of this command *must* be a valid JSON array.",
          "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": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "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`.",
          "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>.",
          "default": "[]"
        },
        "paths": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "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": "should be set to the file dependencies for this artifact, so that the skaffold file watcher knows when to rebuild and perform file synchronization.",
          "default": "[]"
        }
      },
      "preferredOrder": [
        "dockerfile",
        "command",
        "paths",
        "ignore"
      ],
      "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.",
      "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": {
      "properties": {
        "format": {
          "type": "string",
          "description": "formats the date and time. See [#Time.Format](https://golang.org/pkg/time/#Time.Format).",
          "x-intellij-html-description": "formats the date and time. See <a href=\"https://golang.org/pkg/time/#Time.Format\">#Time.Format</a>.",
          "default": "2006-01-02_15-04-05.999_MST"
        },
        "timezone": {
          "type": "string",
          "description": "sets the timezone for the date and time. See [Time.LoadLocation](https://golang.org/pkg/time/#Time.LoadLocation). Defaults to the local timezone.",
          "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."
        }
      },
      "preferredOrder": [
        "format",
        "timezone"
      ],
      "additionalProperties": false,
      "description": "*beta* tags images with the build timestamp.",
      "x-intellij-html-description": "<em>beta</em> tags images with the build timestamp."
    },
    "DeployConfig": {
      "anyOf": [
        {
          "properties": {
            "statusCheckDeadlineSeconds": {
              "type": "integer",
              "description": "*beta* deadline for deployments to stabilize in seconds.",
              "x-intellij-html-description": "<em>beta</em> deadline for deployments to stabilize in seconds."
            }
          },
          "preferredOrder": [
            "statusCheckDeadlineSeconds"
          ],
          "additionalProperties": false
        },
        {
          "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."
            },
            "statusCheckDeadlineSeconds": {
              "type": "integer",
              "description": "*beta* deadline for deployments to stabilize in seconds.",
              "x-intellij-html-description": "<em>beta</em> deadline for deployments to stabilize in seconds."
            }
          },
          "preferredOrder": [
            "statusCheckDeadlineSeconds",
            "helm"
          ],
          "additionalProperties": false
        },
        {
          "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."
            },
            "statusCheckDeadlineSeconds": {
              "type": "integer",
              "description": "*beta* deadline for deployments to stabilize in seconds.",
              "x-intellij-html-description": "<em>beta</em> deadline for deployments to stabilize in seconds."
            }
          },
          "preferredOrder": [
            "statusCheckDeadlineSeconds",
            "kubectl"
          ],
          "additionalProperties": false
        },
        {
          "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."
            },
            "statusCheckDeadlineSeconds": {
              "type": "integer",
              "description": "*beta* deadline for deployments to stabilize in seconds.",
              "x-intellij-html-description": "<em>beta</em> deadline for deployments to stabilize in seconds."
            }
          },
          "preferredOrder": [
            "statusCheckDeadlineSeconds",
            "kustomize"
          ],
          "additionalProperties": false
        }
      ],
      "description": "contains all the configuration needed by the deploy steps.",
      "x-intellij-html-description": "contains all the configuration needed by the deploy steps."
    },
    "DockerArtifact": {
      "properties": {
        "buildArgs": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "description": "arguments passed to the docker build.",
          "x-intellij-html-description": "arguments passed to the docker build.",
          "default": "{}",
          "examples": [
            "{\"key1\": \"value1\", \"key2\": \"value2\"}"
          ]
        },
        "cacheFrom": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "the Docker images used as cache sources.",
          "x-intellij-html-description": "the Docker images used as cache sources.",
          "default": "[]",
          "examples": [
            "[\"golang:1.10.1-alpine3.7\", \"alpine:3.7\"]"
          ]
        },
        "dockerfile": {
          "type": "string",
          "description": "locates the Dockerfile relative to workspace.",
          "x-intellij-html-description": "locates the Dockerfile relative to workspace.",
          "default": "Dockerfile"
        },
        "network": {
          "type": "string",
          "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.",
          "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": {
          "type": "boolean",
          "description": "used to pass in --no-cache to docker build to prevent caching.",
          "x-intellij-html-description": "used to pass in --no-cache to docker build to prevent caching.",
          "default": "false"
        },
        "target": {
          "type": "string",
          "description": "Dockerfile target name to build.",
          "x-intellij-html-description": "Dockerfile target name to build."
        }
      },
      "preferredOrder": [
        "dockerfile",
        "target",
        "buildArgs",
        "network",
        "cacheFrom",
        "noCache"
      ],
      "additionalProperties": false,
      "description": "*beta* describes an artifact built from a Dockerfile, usually using `docker build`.",
      "x-intellij-html-description": "<em>beta</em> describes an artifact built from a Dockerfile, usually using <code>docker build</code>."
    },
    "DockerConfig": {
      "properties": {
        "path": {
          "type": "string",
          "description": "path to the docker `config.json`.",
          "x-intellij-html-description": "path to the docker <code>config.json</code>."
        },
        "secretName": {
          "type": "string",
          "description": "Kubernetes secret that contains the `config.json` Docker configuration. Note that the expected secret type is not 'kubernetes.io/dockerconfigjson' but 'Opaque'.",
          "x-intellij-html-description": "Kubernetes secret that contains the <code>config.json</code> Docker configuration. Note that the expected secret type is not 'kubernetes.io/dockerconfigjson' but 'Opaque'."
        }
      },
      "preferredOrder": [
        "path",
        "secretName"
      ],
      "additionalProperties": false,
      "description": "contains information about the docker `config.json` to mount.",
      "x-intellij-html-description": "contains information about the docker <code>config.json</code> to mount."
    },
    "DockerfileDependency": {
      "properties": {
        "buildArgs": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "description": "arguments passed to the docker build. It also accepts environment variables via the go template syntax.",
          "x-intellij-html-description": "arguments passed to the docker build. It also accepts environment variables via the go template syntax.",
          "default": "{}",
          "examples": [
            "{\"key1\": \"value1\", \"key2\": \"value2\", \"key3\": \"{{.ENV_VARIABLE}}\"}"
          ]
        },
        "path": {
          "type": "string",
          "description": "locates the Dockerfile relative to workspace.",
          "x-intellij-html-description": "locates the Dockerfile relative to workspace."
        }
      },
      "preferredOrder": [
        "path",
        "buildArgs"
      ],
      "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.",
      "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": {
      "required": [
        "template"
      ],
      "properties": {
        "template": {
          "type": "string",
          "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.",
          "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.",
          "examples": [
            "{{.RELEASE}}-{{.IMAGE_NAME}}"
          ]
        }
      },
      "preferredOrder": [
        "template"
      ],
      "additionalProperties": false,
      "description": "*beta* tags images with a configurable template string.",
      "x-intellij-html-description": "<em>beta</em> tags images with a configurable template string."
    },
    "GitTagger": {
      "properties": {
        "variant": {
          "type": "string",
          "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. `TreeSha`: use the full tree hash of the artifact workingdir. `AbbrevTreeSha`: use the abbreviated tree hash of the artifact workingdir.",
          "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. <code>TreeSha</code>: use the full tree hash of the artifact workingdir. <code>AbbrevTreeSha</code>: use the abbreviated tree hash of the artifact workingdir."
        }
      },
      "preferredOrder": [
        "variant"
      ],
      "additionalProperties": false,
      "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."
    },
    "GoogleCloudBuild": {
      "properties": {
        "diskSizeGb": {
          "type": "integer",
          "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).",
          "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": {
          "type": "string",
          "description": "image that runs a Docker build. See [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders).",
          "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>.",
          "default": "gcr.io/cloud-builders/docker"
        },
        "gradleImage": {
          "type": "string",
          "description": "image that runs a Gradle build. See [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders).",
          "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>.",
          "default": "gcr.io/cloud-builders/gradle"
        },
        "kanikoImage": {
          "type": "string",
          "description": "image that runs a Kaniko build. See [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders).",
          "x-intellij-html-description": "image that runs a Kaniko build. See <a href=\"https://cloud.google.com/cloud-build/docs/cloud-builders\">Cloud Builders</a>.",
          "default": "gcr.io/kaniko-project/executor"
        },
        "machineType": {
          "type": "string",
          "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).",
          "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": {
          "type": "string",
          "description": "image that runs a Maven build. See [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders).",
          "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>.",
          "default": "gcr.io/cloud-builders/mvn"
        },
        "projectId": {
          "type": "string",
          "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.",
          "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": {
          "type": "string",
          "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).",
          "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>."
        }
      },
      "preferredOrder": [
        "projectId",
        "diskSizeGb",
        "machineType",
        "timeout",
        "dockerImage",
        "kanikoImage",
        "mavenImage",
        "gradleImage"
      ],
      "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.",
      "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": {
      "properties": {
        "explicitRegistry": {
{'fraction_non_alphanumeric': 0.12814340416955908, 'fraction_numerical': 0.0012763956378619254, 'mean_word_length': 2.0565346839601655, 'pattern_counts': {'":': 1143, '<': 361, '<?xml version=': 0, '>': 361, 'https://': 66, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5434080', 'n_tokens_mistral': 23722, 'n_tokens_neox': 22958, 'n_words': 7398}