{
  "description": "EnvVarSource represents a source for the value of an EnvVar.",
  "properties": {
    "configMapKeyRef": {
      "description": "Selects a key from a ConfigMap.",
      "properties": {
        "key": {
          "description": "The key to select.",
          "type": "string"
        },
        "name": {
          "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
          "type": [
            "string",
            "null"
          ]
        },
        "optional": {
          "description": "Specify whether the ConfigMap or its key must be defined",
          "type": [
            "boolean",
            "null"
          ]
        }
      },
      "required": [
        "key"
      ],
      "type": [
        "object",
        "null"
      ],
      "x-kubernetes-map-type": "atomic",
      "additionalProperties": false
    },
    "fieldRef": {
      "description": "ObjectFieldSelector selects an APIVersioned field of an object.",
      "properties": {
        "apiVersion": {
          "description": "Version of the schema the FieldPath is written in terms of, defaults to \"v1\".",
          "type": [
            "string",
            "null"
          ]
        },
        "fieldPath": {
          "description": "Path of the field to select in the specified API version.",
          "type": "string"
        }
      },
      "required": [
        "fieldPath"
      ],
      "type": [
        "object",
        "null"
      ],
      "x-kubernetes-map-type": "atomic",
      "additionalProperties": false
    },
    "fileKeyRef": {
      "description": "FileKeySelector selects a key of the env file.",
      "properties": {
        "key": {
          "description": "The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except '='. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.",
          "type": "string"
        },
        "optional": {
          "description": "Specify whether the file or its key must be defined. If the file or key does not exist, then the env var is not published. If optional is set to true and the specified key does not exist, the environment variable will not be set in the Pod's containers.\n\nIf optional is set to false and the specified key does not exist, an error will be returned during Pod creation.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "path": {
          "description": "The path within the volume from which to select the file. Must be relative and may not contain the '..' path or start with '..'.",
          "type": "string"
        },
        "volumeName": {
          "description": "The name of the volume mount containing the env file.",
          "type": "string"
        }
      },
      "required": [
        "volumeName",
        "path",
        "key"
      ],
      "type": [
        "object",
        "null"
      ],
      "x-kubernetes-map-type": "atomic",
      "additionalProperties": false
    },
    "resourceFieldRef": {
      "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format",
      "properties": {
        "containerName": {
          "description": "Container name: required for volumes, optional for env vars",
          "type": [
            "string",
            "null"
          ]
        },
        "divisor": {
          "oneOf": [
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "type": [
                "number",
                "null"
              ]
            }
          ]
        },
        "resource": {
          "description": "Required: resource to select",
          "type": "string"
        }
      },
      "required": [
        "resource"
      ],
      "type": [
        "object",
        "null"
      ],
      "x-kubernetes-map-type": "atomic",
      "additionalProperties": false
    },
    "secretKeyRef": {
      "description": "SecretKeySelector selects a key of a Secret.",
      "properties": {
        "key": {
          "description": "The key of the secret to select from.  Must be a valid secret key.",
          "type": "string"
        },
        "name": {
          "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
          "type": [
            "string",
            "null"
          ]
        },
        "optional": {
          "description": "Specify whether the Secret or its key must be defined",
          "type": [
            "boolean",
            "null"
          ]
        }
      },
      "required": [
        "key"
      ],
      "type": [
        "object",
        "null"
      ],
      "x-kubernetes-map-type": "atomic",
      "additionalProperties": false
    }
  },
  "type": "object",
  "additionalProperties": false,
  "$schema": "http://json-schema.org/schema#"
}