{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "$ref": "#/definitions/ProjectConfig",
  "definitions": {
    "AWSElasticBlockStoreVolumeSource": {
      "properties": {
        "fsType": {
          "type": "string"
        },
        "partition": {
          "type": "integer"
        },
        "readOnly": {
          "type": "boolean"
        },
        "volumeID": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "AddonConfig": {
      "properties": {
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Agent": {
      "properties": {
        "container": {
          "type": "string"
        },
        "dir": {
          "type": "string"
        },
        "image": {
          "type": "string"
        },
        "label": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "AzureDiskVolumeSource": {
      "properties": {
        "cachingMode": {
          "type": "string"
        },
        "diskName": {
          "type": "string"
        },
        "diskURI": {
          "type": "string"
        },
        "fsType": {
          "type": "string"
        },
        "kind": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "AzureFileVolumeSource": {
      "properties": {
        "readOnly": {
          "type": "boolean"
        },
        "secretName": {
          "type": "string"
        },
        "shareName": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "CSIVolumeSource": {
      "properties": {
        "driver": {
          "type": "string"
        },
        "fsType": {
          "type": "string"
        },
        "nodePublishSecretRef": {
          "$ref": "#/definitions/LocalObjectReference"
        },
        "readOnly": {
          "type": "boolean"
        },
        "volumeAttributes": {
          "patternProperties": {
            ".*": {
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "CephFSVolumeSource": {
      "properties": {
        "monitors": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "path": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        },
        "secretFile": {
          "type": "string"
        },
        "secretRef": {
          "$ref": "#/definitions/LocalObjectReference"
        },
        "user": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ChatConfig": {
      "properties": {
        "developerChannel": {
          "type": "string"
        },
        "kind": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "userChannel": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "CinderVolumeSource": {
      "properties": {
        "fsType": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        },
        "secretRef": {
          "$ref": "#/definitions/LocalObjectReference"
        },
        "volumeID": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ConfigMapKeySelector": {
      "properties": {
        "key": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "optional": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ConfigMapProjection": {
      "properties": {
        "items": {
          "items": {
            "$ref": "#/definitions/KeyToPath"
          },
          "type": "array"
        },
        "name": {
          "type": "string"
        },
        "optional": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ConfigMapVolumeSource": {
      "properties": {
        "defaultMode": {
          "type": "integer"
        },
        "items": {
          "items": {
            "$ref": "#/definitions/KeyToPath"
          },
          "type": "array"
        },
        "name": {
          "type": "string"
        },
        "optional": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Container": {
      "additionalProperties": true,
      "type": "object"
    },
    "DownwardAPIProjection": {
      "properties": {
        "items": {
          "items": {
            "$ref": "#/definitions/DownwardAPIVolumeFile"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "DownwardAPIVolumeFile": {
      "properties": {
        "fieldRef": {
          "$ref": "#/definitions/ObjectFieldSelector"
        },
        "mode": {
          "type": "integer"
        },
        "path": {
          "type": "string"
        },
        "resourceFieldRef": {
          "$ref": "#/definitions/ResourceFieldSelector"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "DownwardAPIVolumeSource": {
      "properties": {
        "defaultMode": {
          "type": "integer"
        },
        "items": {
          "items": {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "$ref": "#/definitions/DownwardAPIVolumeFile"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "EmptyDirVolumeSource": {
      "properties": {
        "medium": {
          "type": "string"
        },
        "sizeLimit": {
          "$ref": "#/definitions/Quantity"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "EnvVar": {
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "string"
        },
        "valueFrom": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/EnvVarSource"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "EnvVarSource": {
      "properties": {
        "configMapKeyRef": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/ConfigMapKeySelector"
        },
        "fieldRef": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/ObjectFieldSelector"
        },
        "resourceFieldRef": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/ResourceFieldSelector"
        },
        "secretKeyRef": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/SecretKeySelector"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "FCVolumeSource": {
      "properties": {
        "fsType": {
          "type": "string"
        },
        "lun": {
          "type": "integer"
        },
        "readOnly": {
          "type": "boolean"
        },
        "targetWWNs": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "wwids": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "FlexVolumeSource": {
      "properties": {
        "driver": {
          "type": "string"
        },
        "fsType": {
          "type": "string"
        },
        "options": {
          "patternProperties": {
            ".*": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "readOnly": {
          "type": "boolean"
        },
        "secretRef": {
          "$ref": "#/definitions/LocalObjectReference"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "FlockerVolumeSource": {
      "properties": {
        "datasetName": {
          "type": "string"
        },
        "datasetUUID": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "GCEPersistentDiskVolumeSource": {
      "properties": {
        "fsType": {
          "type": "string"
        },
        "partition": {
          "type": "integer"
        },
        "pdName": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "GitRepoVolumeSource": {
      "properties": {
        "directory": {
          "type": "string"
        },
        "repository": {
          "type": "string"
        },
        "revision": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "GlusterfsVolumeSource": {
      "properties": {
        "endpoints": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "HostPathVolumeSource": {
      "properties": {
        "path": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ISCSIVolumeSource": {
      "properties": {
        "chapAuthDiscovery": {
          "type": "boolean"
        },
        "chapAuthSession": {
          "type": "boolean"
        },
        "fsType": {
          "type": "string"
        },
        "initiatorName": {
          "type": "string"
        },
        "iqn": {
          "type": "string"
        },
        "iscsiInterface": {
          "type": "string"
        },
        "lun": {
          "type": "integer"
        },
        "portals": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "readOnly": {
          "type": "boolean"
        },
        "secretRef": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/LocalObjectReference"
        },
        "targetPortal": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "IssueTrackerConfig": {
      "properties": {
        "kind": {
          "type": "string"
        },
        "project": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "KeyToPath": {
      "properties": {
        "key": {
          "type": "string"
        },
        "mode": {
          "type": "integer"
        },
        "path": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "LocalObjectReference": {
      "properties": {
        "name": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Loop": {
      "properties": {
        "steps": {
          "items": {
            "$ref": "#/definitions/Step"
          },
          "type": "array"
        },
        "values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "variable": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "NFSVolumeSource": {
      "properties": {
        "path": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        },
        "server": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ObjectFieldSelector": {
      "properties": {
        "apiVersion": {
          "type": "string"
        },
        "fieldPath": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ParsedPipeline": {
      "properties": {
        "agent": {
          "$ref": "#/definitions/Agent"
        },
        "dir": {
          "type": "string"
        },
        "env": {
          "items": {
            "$ref": "#/definitions/EnvVar"
          },
          "type": "array"
        },
        "environment": {
          "items": {
            "$ref": "#/definitions/EnvVar"
          },
          "type": "array"
        },
        "options": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/RootOptions"
        },
        "post": {
          "items": {
            "$ref": "#/definitions/Post"
          },
          "type": "array"
        },
        "stages": {
          "items": {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "$ref": "#/definitions/Stage"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "PersistentVolumeClaimVolumeSource": {
      "properties": {
        "claimName": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "PhotonPersistentDiskVolumeSource": {
      "properties": {
        "fsType": {
          "type": "string"
        },
        "pdID": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "PipelineConfig": {
      "properties": {
        "agent": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/Agent"
        },
        "containerOptions": {
          "$ref": "#/definitions/Container"
        },
        "env": {
          "items": {
            "$ref": "#/definitions/EnvVar"
          },
          "type": "array"
        },
        "environment": {
          "type": "string"
        },
        "extends": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/PipelineExtends"
        },
        "pipelines": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/Pipelines"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "PipelineExtends": {
      "properties": {
        "file": {
          "type": "string"
        },
        "import": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "PipelineLifecycle": {
      "properties": {
        "preSteps": {
          "items": {
            "$ref": "#/definitions/Step"
          },
          "type": "array"
        },
        "replace": {
          "type": "boolean"
        },
        "steps": {
          "items": {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "$ref": "#/definitions/Step"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "PipelineLifecycles": {
      "properties": {
        "build": {
          "$ref": "#/definitions/PipelineLifecycle"
        },
        "pipeline": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/ParsedPipeline"
        },
        "postBuild": {
          "$ref": "#/definitions/PipelineLifecycle"
        },
        "preBuild": {
          "$ref": "#/definitions/PipelineLifecycle"
        },
        "promote": {
          "$ref": "#/definitions/PipelineLifecycle"
        },
        "setVersion": {
          "$ref": "#/definitions/PipelineLifecycle"
        },
        "setup": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/PipelineLifecycle"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "PipelineOverride": {
      "properties": {
        "agent": {
          "$ref": "#/definitions/Agent"
        },
        "containerOptions": {
          "$ref": "#/definitions/Container"
        },
        "name": {
          "type": "string"
        },
        "pipeline": {
          "type": "string"
        },
        "sidecars": {
          "items": {
            "$ref": "#/definitions/Container"
          },
          "type": "array"
        },
        "stage": {
          "type": "string"
        },
        "step": {
          "$ref": "#/definitions/Step"
        },
        "steps": {
          "items": {
            "$ref": "#/definitions/Step"
          },
          "type": "array"
        },
        "type": {
          "type": "string"
        },
        "volumes": {
          "items": {
            "$ref": "#/definitions/Volume"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Pipelines": {
      "properties": {
        "default": {
          "$ref": "#/definitions/ParsedPipeline"
        },
        "feature": {
          "$ref": "#/definitions/PipelineLifecycles"
        },
        "overrides": {
          "items": {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "$ref": "#/definitions/PipelineOverride"
          },
          "type": "array"
        },
        "post": {
          "$ref": "#/definitions/PipelineLifecycle"
        },
        "pullRequest": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/PipelineLifecycles"
        },
        "release": {
          "$ref": "#/definitions/PipelineLifecycles"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "PortworxVolumeSource": {
      "properties": {
        "fsType": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        },
        "volumeID": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Post": {
      "properties": {
        "actions": {
          "items": {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "$ref": "#/definitions/PostAction"
          },
          "type": "array"
        },
        "condition": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "PostAction": {
      "properties": {
        "name": {
          "type": "string"
        },
        "options": {
          "patternProperties": {
            ".*": {
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "PreviewEnvironmentConfig": {
      "properties": {
        "disabled": {
          "type": "boolean"
        },
        "maximumInstances": {
          "type": "integer"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ProjectConfig": {
      "properties": {
        "addons": {
          "items": {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "$ref": "#/definitions/AddonConfig"
          },
          "type": "array"
        },
        "buildPack": {
          "type": "string"
        },
        "buildPackGitRef": {
          "type": "string"
        },
        "buildPackGitURL": {
          "type": "string"
        },
        "chat": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/ChatConfig"
        },
        "dockerRegistryHost": {
          "type": "string"
        },
        "dockerRegistryOwner": {
          "type": "string"
        },
        "env": {
          "items": {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "$ref": "#/definitions/EnvVar"
          },
          "type": "array"
        },
        "issueTracker": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/IssueTrackerConfig"
        },
        "noReleasePrepare": {
          "type": "boolean"
        },
        "pipelineConfig": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/PipelineConfig"
        },
        "previewEnvironments": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/PreviewEnvironmentConfig"
        },
        "wiki": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/WikiConfig"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ProjectedVolumeSource": {
      "properties": {
        "defaultMode": {
          "type": "integer"
        },
        "sources": {
          "items": {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "$ref": "#/definitions/VolumeProjection"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Quantity": {
      "additionalProperties": false,
      "type": "object"
    },
    "QuobyteVolumeSource": {
      "properties": {
        "group": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        },
        "registry": {
          "type": "string"
        },
        "tenant": {
          "type": "string"
        },
        "user": {
          "type": "string"
        },
        "volume": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "RBDVolumeSource": {
      "properties": {
        "fsType": {
          "type": "string"
        },
        "image": {
          "type": "string"
        },
        "keyring": {
          "type": "string"
        },
        "monitors": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "pool": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        },
        "secretRef": {
          "$ref": "#/definitions/LocalObjectReference"
        },
        "user": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ResourceFieldSelector": {
      "properties": {
        "containerName": {
          "type": "string"
        },
        "divisor": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/Quantity"
        },
        "resource": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "RootOptions": {
      "properties": {
        "containerOptions": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/Container"
        },
        "distributeParallelAcrossNodes": {
          "type": "boolean"
        },
        "podLabels": {
          "patternProperties": {
            ".*": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "retry": {
          "type": "integer"
        },
        "sidecars": {
          "items": {
            "$ref": "#/definitions/Container"
          },
          "type": "array"
        },
        "timeout": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/Timeout"
        },
        "tolerations": {
          "items": {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "$ref": "#/definitions/Toleration"
          },
          "type": "array"
        },
        "volumes": {
          "items": {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "$ref": "#/definitions/Volume"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ScaleIOVolumeSource": {
      "properties": {
        "fsType": {
          "type": "string"
        },
        "gateway": {
          "type": "string"
        },
        "protectionDomain": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        },
        "secretRef": {
          "$ref": "#/definitions/LocalObjectReference"
        },
        "sslEnabled": {
          "type": "boolean"
        },
        "storageMode": {
          "type": "string"
        },
        "storagePool": {
          "type": "string"
        },
        "system": {
          "type": "string"
        },
        "volumeName": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "SecretKeySelector": {
      "properties": {
        "key": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "optional": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "SecretProjection": {
      "properties": {
        "items": {
          "items": {
            "$ref": "#/definitions/KeyToPath"
          },
          "type": "array"
        },
        "name": {
          "type": "string"
        },
        "optional": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "SecretVolumeSource": {
      "properties": {
        "defaultMode": {
          "type": "integer"
        },
        "items": {
          "items": {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "$ref": "#/definitions/KeyToPath"
          },
          "type": "array"
        },
        "optional": {
          "type": "boolean"
        },
        "secretName": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ServiceAccountTokenProjection": {
      "properties": {
        "audience": {
          "type": "string"
        },
        "expirationSeconds": {
          "type": "integer"
        },
        "path": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Stage": {
      "properties": {
        "agent": {
          "$ref": "#/definitions/Agent"
        },
        "dir": {
          "type": "string"
        },
        "env": {
          "items": {
            "$ref": "#/definitions/EnvVar"
          },
          "type": "array"
        },
        "environment": {
          "items": {
            "$ref": "#/definitions/EnvVar"
          },
          "type": "array"
        },
        "name": {
          "type": "string"
        },
        "options": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/StageOptions"
        },
        "parallel": {
          "items": {
            "$ref": "#/definitions/Stage"
          },
          "type": "array"
        },
        "post": {
          "items": {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "$ref": "#/definitions/Post"
          },
          "type": "array"
        },
        "stages": {
          "items": {
            "$ref": "#/definitions/Stage"
          },
          "type": "array"
        },
        "steps": {
          "items": {
            "$ref": "#/definitions/Step"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "StageOptions": {
      "properties": {
        "containerOptions": {
          "$ref": "#/definitions/Container"
        },
        "distributeParallelAcrossNodes": {
          "type": "boolean"
        },
        "podLabels": {
          "patternProperties": {
            ".*": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "retry": {
          "type": "integer"
        },
        "sidecars": {
          "items": {
            "$ref": "#/definitions/Container"
          },
          "type": "array"
        },
        "stash": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/Stash"
        },
        "timeout": {
          "$ref": "#/definitions/Timeout"
        },
        "tolerations": {
          "items": {
            "$ref": "#/definitions/Toleration"
          },
          "type": "array"
        },
        "unstash": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/Unstash"
        },
        "volumes": {
          "items": {
            "$ref": "#/definitions/Volume"
          },
          "type": "array"
        },
        "workspace": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Stash": {
      "properties": {
        "files": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Step": {
      "properties": {
        "agent": {
          "$ref": "#/definitions/Agent"
        },
        "args": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "command": {
          "type": "string"
        },
        "comment": {
          "type": "string"
        },
        "container": {
          "type": "string"
        },
        "dir": {
          "type": "string"
        },
        "env": {
          "items": {
            "$ref": "#/definitions/EnvVar"
          },
          "type": "array"
        },
        "groovy": {
          "type": "string"
        },
        "image": {
          "type": "string"
        },
        "loop": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/Loop"
        },
        "name": {
          "type": "string"
        },
        "options": {
          "patternProperties": {
            ".*": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "sh": {
          "type": "string"
        },
        "step": {
          "type": "string"
        },
        "steps": {
          "items": {
            "$ref": "#/definitions/Step"
          },
          "type": "array"
        },
        "when": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "StorageOSVolumeSource": {
      "properties": {
        "fsType": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        },
        "secretRef": {
          "$ref": "#/definitions/LocalObjectReference"
        },
        "volumeName": {
          "type": "string"
        },
        "volumeNamespace": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Timeout": {
      "properties": {
        "time": {
          "type": "integer"
        },
        "unit": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Toleration": {
      "properties": {
        "effect": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "operator": {
          "type": "string"
        },
        "tolerationSeconds": {
          "type": "integer"
        },
        "value": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Unstash": {
      "properties": {
        "dir": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Volume": {
      "properties": {
        "awsElasticBlockStore": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/AWSElasticBlockStoreVolumeSource"
        },
        "azureDisk": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/AzureDiskVolumeSource"
        },
        "azureFile": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/AzureFileVolumeSource"
        },
        "cephfs": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/CephFSVolumeSource"
        },
        "cinder": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/CinderVolumeSource"
        },
        "configMap": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/ConfigMapVolumeSource"
        },
        "csi": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/CSIVolumeSource"
        },
        "downwardAPI": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/DownwardAPIVolumeSource"
        },
        "emptyDir": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/EmptyDirVolumeSource"
        },
        "fc": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/FCVolumeSource"
        },
        "flexVolume": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/FlexVolumeSource"
        },
        "flocker": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/FlockerVolumeSource"
        },
        "gcePersistentDisk": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/GCEPersistentDiskVolumeSource"
        },
        "gitRepo": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/GitRepoVolumeSource"
        },
        "glusterfs": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/GlusterfsVolumeSource"
        },
        "hostPath": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/HostPathVolumeSource"
        },
        "iscsi": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/ISCSIVolumeSource"
        },
        "name": {
          "type": "string"
        },
        "nfs": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/NFSVolumeSource"
        },
        "persistentVolumeClaim": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/PersistentVolumeClaimVolumeSource"
        },
        "photonPersistentDisk": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/PhotonPersistentDiskVolumeSource"
        },
        "portworxVolume": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/PortworxVolumeSource"
        },
        "projected": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/ProjectedVolumeSource"
        },
        "quobyte": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/QuobyteVolumeSource"
        },
        "rbd": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/RBDVolumeSource"
        },
        "scaleIO": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/ScaleIOVolumeSource"
        },
        "secret": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/SecretVolumeSource"
        },
        "storageos": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/StorageOSVolumeSource"
        },
        "vsphereVolume": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/VsphereVirtualDiskVolumeSource"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "VolumeProjection": {
      "properties": {
        "configMap": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/ConfigMapProjection"
        },
        "downwardAPI": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/DownwardAPIProjection"
        },
        "secret": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/SecretProjection"
        },
        "serviceAccountToken": {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "$ref": "#/definitions/ServiceAccountTokenProjection"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "VsphereVirtualDiskVolumeSource": {
      "properties": {
        "fsType": {
          "type": "string"
        },
        "storagePolicyID": {
          "type": "string"
        },
        "storagePolicyName": {
          "type": "string"
        },
        "volumePath": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "WikiConfig": {
      "properties": {
        "kind": {
          "type": "string"
        },
        "space": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    }
  }
}