{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://json.schemastore.org/jfrog-pipelines.json",
  "$ref": "#/definitions/JFrog-Pipelines",
  "definitions": {
    "JFrog-Pipelines": {
      "title": "JFrog-Pipelines",
      "description": "https://www.jfrog.com/confluence/display/JFROG/Pipelines+Developer+Guide",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Resource"
          }
        },
        "pipelines": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Pipeline"
          }
        },
        "template": {
          "type": "boolean"
        },
        "valuesFilePath": {
          "type": "string"
        },
        "include": {
          "type": "object",
          "properties": {
            "template": {
              "type": "string"
            }
          }
        }
      },
      "patternProperties": {
        "^.*$": {
          "anyOf": [
            { "type": "string" },
            { "type": "number" },
            { "type": "integer" },
            { "type": "boolean" },
            { "type": "array" },
            { "type": "object" },
            { "type": "null" }
          ]
        }
      },
      "anyOf": [
        {
          "required": ["pipelines"]
        },
        {
          "required": ["resources"]
        },
        {
          "required": ["include"]
        }
      ]
    },
    "Resource": {
      "title": "Resource",
      "description": "https://www.jfrog.com/confluence/display/JFROG/Pipelines+Resources",
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": [
            "Aql",
            "BuildInfo",
            "CronTrigger",
            "DistributionRule",
            "FileSpec",
            "GitRepo",
            "HelmChart",
            "Image",
            "IncomingWebhook",
            "OutgoingWebhook",
            "PropertyBag",
            "ReleaseBundle",
            "RemoteFile",
            "VmCluster"
          ]
        }
      },
      "allOf": [
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["Aql"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/resourceTypes/Aql"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["BuildInfo"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/resourceTypes/BuildInfo"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["CronTrigger"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/resourceTypes/CronTrigger"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["DistributionRule"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/resourceTypes/DistributionRule"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["FileSpec"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/resourceTypes/FileSpec"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["GitRepo"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/resourceTypes/GitRepo"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["HelmChart"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/resourceTypes/HelmChart"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["Image"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/resourceTypes/Image"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["IncomingWebhook"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/resourceTypes/IncomingWebhook"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["OutgoingWebhook"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/resourceTypes/OutgoingWebhook"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["PropertyBag"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/resourceTypes/PropertyBag"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["ReleaseBundle"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/resourceTypes/ReleaseBundle"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["RemoteFile"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/resourceTypes/RemoteFile"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["VmCluster"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/resourceTypes/VmCluster"
          }
        }
      ]
    },
    "resourceTypes": {
      "Aql": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "sourceArtifactory": {
                "type": "string"
              },
              "query": {
                "type": "string"
              },
              "addedProperties": {
                "type": "object",
                "additionalProperties": {
                  "type": ["string", "number"]
                }
              },
              "mappings": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "input": {
                      "type": "string"
                    },
                    "output": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              }
            },
            "required": ["query", "sourceArtifactory"]
          }
        },
        "required": ["name", "type", "configuration"]
      },
      "BuildInfo": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "sourceArtifactory": {
                "type": "string"
              },
              "buildNumber": {
                "type": ["integer", "string"]
              },
              "buildName": {
                "type": "string"
              },
              "externalCI": {
                "type": "string"
              },
              "pin": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "versionId": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "buildName": {
                    "type": "string"
                  },
                  "buildNumber": {
                    "type": ["integer", "string"]
                  },
                  "targetRepo": {
                    "type": "string"
                  }
                },
                "anyOf": [
                  {
                    "required": ["versionId"]
                  },
                  {
                    "required": ["buildName", "buildNumber"]
                  }
                ]
              }
            },
            "required": ["sourceArtifactory"]
          }
        },
        "required": ["name", "type", "configuration"]
      },
      "CronTrigger": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "interval": {
                "type": "string"
              },
              "branches": {
                "type": "object",
                "properties": {
                  "include": {
                    "type": "string"
                  },
                  "exclude": {
                    "type": "string"
                  }
                }
              }
            },
            "required": ["interval"]
          }
        },
        "required": ["name", "type", "configuration"]
      },
      "DistributionRule": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "properties": {
              "sourceDistribution": {
                "type": "string"
              },
              "serviceName": {
                "type": "string"
              },
              "cityName": {
                "type": "string"
              },
              "siteName": {
                "type": "string"
              },
              "countryCodes": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "minItems": 1
              }
            },
            "required": [
              "serviceName",
              "cityName",
              "siteName",
              "countryCodes",
              "sourceDistribution"
            ],
            "additionalProperties": false
          }
        },
        "required": ["name", "type", "configuration"],
        "additionalProperties": false
      },
      "FileSpec": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "sourceArtifactory": {
                "type": "string"
              },
              "pattern": {
                "type": "string"
              },
              "aql": {
                "type": "string"
              },
              "target": {
                "type": "string"
              },
              "props": {
                "type": "string"
              },
              "recursive": {
                "type": ["boolean", "string"]
              },
              "flat": {
                "type": ["boolean", "string"]
              },
              "excludePatterns": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "exclusions": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "archiveEntries": {
                "type": "string"
              },
              "buildNumber": {
                "type": ["integer", "string"]
              },
              "buildName": {
                "type": "string"
              },
              "sortBy": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "sortOrder": {
                "type": "string"
              },
              "limit": {
                "type": ["integer", "string"]
              },
              "offset": {
                "type": ["integer", "string"]
              }
            },
            "required": ["sourceArtifactory"]
          }
        },
        "required": ["name", "type", "configuration"]
      },
      "GitRepo": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "gitProvider": {
                "type": "string"
              },
              "path": {
                "type": "string"
              },
              "cloneProtocol": {
                "type": "string",
                "enum": ["ssh", "https"]
              },
              "files": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "include": {
                    "type": "string",
                    "format": "regex"
                  },
                  "exclude": {
                    "type": "string",
                    "format": "regex"
                  }
                }
              },
              "branches": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "include": {
                    "type": "string",
                    "format": "regex"
                  },
                  "exclude": {
                    "type": "string",
                    "format": "regex"
                  }
                }
              },
              "pullRequestSourceBranches": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "include": {
                    "type": "string",
                    "format": "regex"
                  },
                  "exclude": {
                    "type": "string",
                    "format": "regex"
                  }
                }
              },
              "pullRequestTargetBranches": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "include": {
                    "type": "string",
                    "format": "regex"
                  },
                  "exclude": {
                    "type": "string",
                    "format": "regex"
                  }
                }
              },
              "tags": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "include": {
                    "type": "string",
                    "format": "regex"
                  },
                  "exclude": {
                    "type": "string",
                    "format": "regex"
                  }
                }
              },
              "buildOn": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "commit": {
                    "type": "boolean"
                  },
                  "pullRequestCreate": {
                    "type": "boolean"
                  },
                  "pullRequestClose": {
                    "type": "boolean"
                  },
                  "releaseCreate": {
                    "type": "boolean"
                  },
                  "tagCreate": {
                    "type": "boolean"
                  },
                  "branchCreate": {
                    "type": "boolean"
                  }
                }
              },
              "cancelPendingRunsOn": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "newCommit": {
                    "type": "boolean"
                  },
                  "pullRequestUpdate": {
                    "type": "boolean"
                  }
                }
              },
              "shallowDepth": {
                "type": "integer",
                "minimum": 1
              },
              "pin": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "versionId": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "sha": {
                    "type": "string"
                  }
                },
                "anyOf": [
                  {
                    "required": ["versionId"]
                  },
                  {
                    "required": ["sha"]
                  }
                ]
              }
            },
            "required": ["gitProvider", "path"]
          }
        },
        "required": ["name", "type", "configuration"]
      },
      "HelmChart": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "sourceArtifactory": {
                "type": "string"
              },
              "repository": {
                "type": "string"
              },
              "version": {
                "type": "string"
              },
              "chart": {
                "type": "string"
              },
              "pin": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "versionId": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "version": {
                    "type": "string"
                  }
                },
                "anyOf": [
                  {
                    "required": ["versionId"]
                  },
                  {
                    "required": ["version"]
                  }
                ]
              }
            },
            "required": ["sourceArtifactory", "repository", "chart", "version"]
          }
        },
        "required": ["name", "type", "configuration"]
      },
      "Image": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "registry": {
                "type": "string"
              },
              "sourceRepository": {
                "type": "string"
              },
              "imageName": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "autoPull": {
                "type": ["boolean", "string"]
              },
              "region": {
                "type": "string"
              },
              "pin": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "versionId": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "imageTag": {
                    "type": "string"
                  }
                },
                "anyOf": [
                  {
                    "required": ["versionId"]
                  },
                  {
                    "required": ["imageTag"]
                  }
                ]
              }
            },
            "required": ["registry", "imageName", "imageTag"]
          }
        },
        "required": ["name", "type", "configuration"]
      },
      "IncomingWebhook": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "webhookName": {
                "type": "string"
              }
            },
            "required": ["webhookName"]
          }
        },
        "required": ["name", "type", "configuration"]
      },
      "OutgoingWebhook": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "webhookName": {
                "type": "string"
              },
              "method": {
                "type": "string",
                "enum": ["GET", "PUT", "POST", "DELETE", "PATCH"]
              },
              "parameters": {
                "type": "string"
              },
              "path": {
                "type": "string"
              },
              "headers": {
                "type": "object"
              }
            },
            "required": ["webhookName"]
          }
        },
        "required": ["name", "type", "configuration"]
      },
      "PropertyBag": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "pin": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "versionId": {
                    "type": "integer",
                    "minimum": 1
                  }
                }
              }
            },
            "required": []
          }
        },
        "required": ["name", "type", "configuration"]
      },
      "ReleaseBundle": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "properties": {
              "sourceDistribution": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "version": {
                "type": "string"
              },
              "isSigned": {
                "type": ["boolean", "string"]
              },
              "pin": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "versionId": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "name": {
                    "type": "string"
                  },
                  "version": {
                    "type": "string"
                  }
                },
                "anyOf": [
                  {
                    "required": ["versionId"]
                  },
                  {
                    "required": ["name", "version"]
                  }
                ]
              }
            },
            "required": ["name", "version", "sourceDistribution"],
            "additionalProperties": false
          }
        },
        "required": ["name", "type", "configuration"],
        "additionalProperties": false
      },
      "RemoteFile": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "source": {
                "type": "string"
              },
              "fileLocation": {
                "type": "string"
              },
              "fileName": {
                "type": "string"
              },
              "fileDateTime": {
                "type": "string"
              }
            },
            "anyOf": [
              {
                "required": ["source", "fileLocation"]
              },
              {
                "required": ["source", "fileName"]
              }
            ]
          }
        },
        "required": ["name", "type", "configuration"]
      },
      "VmCluster": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "sshKey": {
                "type": "string"
              },
              "targets": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "required": ["sshKey", "targets"]
          }
        },
        "required": ["name", "type", "configuration"]
      }
    },
    "Pipeline": {
      "title": "Pipeline",
      "description": "https://www.jfrog.com/confluence/display/JFROG/Creating+Pipelines",
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "environmentVariables": {
              "type": "object",
              "properties": {
                "readOnly": {
                  "type": "object",
                  "additionalProperties": {
                    "type": ["string", "number", "object"],
                    "properties": {
                      "description": {
                        "type": "string"
                      },
                      "default": {
                        "type": ["string", "number"]
                      },
                      "values": {
                        "type": "array",
                        "minItems": 1,
                        "items": {
                          "type": ["string", "number"]
                        }
                      },
                      "allowCustom": {
                        "type": "boolean"
                      },
                      "allowMultipleValues": {
                        "type": "boolean"
                      },
                      "defaultMultipleValues": {
                        "type": "array",
                        "minItems": 1,
                        "items": {
                          "type": ["string", "number"]
                        }
                      }
                    },
                    "anyOf": [
                      { "required": ["default"] },
                      { "required": ["defaultMultipleValues"] }
                    ]
                  }
                }
              },
              "required": ["readOnly"]
            },
            "nodePool": {
              "type": "string"
            },
            "affinityGroup": {
              "type": "string"
            },
            "jfrogCliVersion": {
              "type": ["string", "integer"],
              "enum": ["1", "2", 1, 2]
            },
            "runtime": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": ["image", "host"]
                }
              },
              "required": ["type"],
              "if": {
                "properties": {
                  "type": {
                    "enum": ["image"]
                  }
                }
              },
              "then": {
                "properties": {
                  "type": {
                    "enum": ["image"]
                  },
                  "image": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "auto": {
                        "type": "object",
                        "required": ["language", "versions"],
                        "properties": {
                          "language": {
                            "type": "string"
                          },
                          "versions": {
                            "type": "array",
                            "items": {
                              "type": ["string", "number"]
                            }
                          }
                        }
                      },
                      "custom": {
                        "type": "object",
                        "additionalProperties": false,
                        "required": ["name", "tag"],
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "tag": {
                            "type": "string"
                          },
                          "options": {
                            "type": "string"
                          },
                          "registry": {
                            "type": "string"
                          },
                          "sourceRepository": {
                            "type": "string"
                          },
                          "region": {
                            "type": "string"
                          },
                          "autoPull": {
                            "type": "boolean"
                          }
                        }
                      }
                    },
                    "oneOf": [
                      {
                        "required": ["auto"]
                      },
                      {
                        "required": ["custom"]
                      }
                    ]
                  }
                },
                "additionalProperties": false
              },
              "else": {
                "properties": {
                  "type": {
                    "enum": ["host"]
                  }
                },
                "additionalProperties": false
              }
            },
            "integrations": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  }
                },
                "required": ["name"],
                "additionalProperties": false
              }
            },
            "inputResources": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "branch": {
                    "type": "string"
                  },
                  "trigger": {
                    "type": "boolean"
                  },
                  "newVersionOnly": {
                    "type": "boolean"
                  }
                },
                "required": ["name"],
                "additionalProperties": false
              }
            },
            "outputResources": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "branch": {
                    "type": "string"
                  }
                },
                "required": ["name"],
                "additionalProperties": false
              }
            },
            "chronological": {
              "type": "boolean"
            },
            "dependencyMode": {
              "type": "object",
              "properties": {
                "waitOnParentComplete": {
                  "type": "boolean"
                },
                "waitOnParentSuccess": {
                  "type": "boolean"
                },
                "waitOnChildComplete": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false
            },
            "retentionPolicy": {
              "type": "object",
              "properties": {
                "maxAgeDays": {
                  "type": "number"
                },
                "minRuns": {
                  "type": "number"
                }
              },
              "additionalProperties": false
            },
            "reTriggerOnSyncFailure": {
              "type": "boolean"
            }
          }
        },
        "preRun": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "configuration": {
              "additionalProperties": false,
              "properties": {
                "environmentVariables": {
                  "type": "object",
                  "properties": {
                    "readOnly": {
                      "type": "object",
                      "additionalProperties": {
                        "type": ["string", "number", "object"],
                        "properties": {
                          "description": {
                            "type": "string"
                          },
                          "default": {
                            "type": ["string", "number"]
                          },
                          "values": {
                            "type": "array",
                            "minItems": 1,
                            "items": {
                              "type": ["string", "number"]
                            }
                          },
                          "allowCustom": {
                            "type": "boolean"
                          },
                          "allowMultipleValues": {
                            "type": "boolean"
                          },
                          "defaultMultipleValues": {
                            "type": "array",
                            "minItems": 1,
                            "items": {
                              "type": ["string", "number"]
                            }
                          }
                        },
                        "anyOf": [
                          { "required": ["default"] },
                          { "required": ["defaultMultipleValues"] }
                        ]
                      }
                    }
                  },
                  "required": ["readOnly"]
                },
                "nodePool": {
                  "type": "string"
                },
                "affinityGroup": {
                  "type": "string"
                },
                "jfrogCliVersion": {
                  "type": ["string", "integer"],
                  "enum": ["1", "2", 1, 2]
                },
                "runtime": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": ["image", "host"]
                    }
                  },
                  "required": ["type"],
                  "if": {
                    "properties": {
                      "type": { "enum": ["image"] }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": { "enum": ["image"] },
                      "image": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language", "versions"],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "versions": {
                                "type": "array",
                                "items": {
                                  "type": ["string", "number"]
                                }
                              }
                            }
                          },
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        },
                        "oneOf": [
                          { "required": ["auto"] },
                          { "required": ["custom"] }
                        ]
                      }
                    },
                    "additionalProperties": false
                  },
                  "else": {
                    "properties": {
                      "type": { "enum": ["host"] }
                    },
                    "additionalProperties": false
                  }
                },
                "integrations": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      }
                    },
                    "required": ["name"],
                    "additionalProperties": false
                  }
                },
                "inputResources": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "branch": {
                        "type": "string"
                      },
                      "trigger": {
                        "type": "boolean"
                      },
                      "newVersionOnly": {
                        "type": "boolean"
                      }
                    },
                    "required": ["name"],
                    "additionalProperties": false
                  }
                },
                "outputResources": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "branch": {
                        "type": "string"
                      }
                    },
                    "required": ["name"],
                    "additionalProperties": false
                  }
                },
                "chronological": {
                  "type": "boolean"
                }
              }
            },
            "execution": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "onStart": {
                  "$ref": "#/definitions/pipelineCommon/execution"
                },
                "onExecute": {
                  "$ref": "#/definitions/pipelineCommon/execution"
                },
                "onSuccess": {
                  "$ref": "#/definitions/pipelineCommon/execution"
                },
                "onFailure": {
                  "$ref": "#/definitions/pipelineCommon/execution"
                },
                "onComplete": {
                  "$ref": "#/definitions/pipelineCommon/execution"
                },
                "onCancel": {
                  "$ref": "#/definitions/pipelineCommon/execution"
                }
              }
            }
          }
        },
        "postRun": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "configuration": {
              "additionalProperties": false,
              "properties": {
                "environmentVariables": {
                  "type": "object",
                  "properties": {
                    "readOnly": {
                      "type": "object",
                      "additionalProperties": {
                        "type": ["string", "number", "object"],
                        "properties": {
                          "description": {
                            "type": "string"
                          },
                          "default": {
                            "type": ["string", "number"]
                          },
                          "values": {
                            "type": "array",
                            "minItems": 1,
                            "items": {
                              "type": ["string", "number"]
                            }
                          },
                          "allowCustom": {
                            "type": "boolean"
                          },
                          "allowMultipleValues": {
                            "type": "boolean"
                          },
                          "defaultMultipleValues": {
                            "type": "array",
                            "minItems": 1,
                            "items": {
                              "type": ["string", "number"]
                            }
                          }
                        },
                        "anyOf": [
                          { "required": ["default"] },
                          { "required": ["defaultMultipleValues"] }
                        ]
                      }
                    }
                  },
                  "required": ["readOnly"]
                },
                "nodePool": {
                  "type": "string"
                },
                "affinityGroup": {
                  "type": "string"
                },
                "jfrogCliVersion": {
                  "type": ["string", "integer"],
                  "enum": ["1", "2", 1, 2]
                },
                "runtime": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": ["image", "host"]
                    }
                  },
                  "required": ["type"],
                  "if": {
                    "properties": {
                      "type": { "enum": ["image"] }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": { "enum": ["image"] },
                      "image": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language", "versions"],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "versions": {
                                "type": "array",
                                "items": {
                                  "type": ["string", "number"]
                                }
                              }
                            }
                          },
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        },
                        "oneOf": [
                          { "required": ["auto"] },
                          { "required": ["custom"] }
                        ]
                      }
                    },
                    "additionalProperties": false
                  },
                  "else": {
                    "properties": {
                      "type": { "enum": ["host"] }
                    },
                    "additionalProperties": false
                  }
                },
                "integrations": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      }
                    },
                    "required": ["name"],
                    "additionalProperties": false
                  }
                },
                "inputResources": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "branch": {
                        "type": "string"
                      },
                      "trigger": {
                        "type": "boolean"
                      },
                      "newVersionOnly": {
                        "type": "boolean"
                      }
                    },
                    "required": ["name"],
                    "additionalProperties": false
                  }
                },
                "outputResources": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "branch": {
                        "type": "string"
                      }
                    },
                    "required": ["name"],
                    "additionalProperties": false
                  }
                },
                "chronological": {
                  "type": "boolean"
                }
              }
            },
            "execution": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "onStart": {
                  "$ref": "#/definitions/pipelineCommon/execution"
                },
                "onExecute": {
                  "$ref": "#/definitions/pipelineCommon/execution"
                },
                "onSuccess": {
                  "$ref": "#/definitions/pipelineCommon/execution"
                },
                "onFailure": {
                  "$ref": "#/definitions/pipelineCommon/execution"
                },
                "onComplete": {
                  "$ref": "#/definitions/pipelineCommon/execution"
                },
                "onCancel": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "$ref": "#/definitions/common/Task"
                    }
                  ]
                }
              }
            }
          }
        },
        "steps": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/definitions/Step"
          }
        }
      },
      "required": ["name", "steps"],
      "additionalProperties": false
    },
    "pipelineCommon": {
      "execution": {
        "type": "array",
        "items": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/definitions/common/Task"
            }
          ]
        }
      }
    },
    "Step": {
      "title": "Step",
      "description": "https://www.jfrog.com/confluence/display/JFROG/Pipelines+Steps",
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": [
            "Bash",
            "CreateReleaseBundle",
            "DistributeReleaseBundle",
            "DockerBuild",
            "DockerPush",
            "GoBuild",
            "GoPublishBinary",
            "GoPublishModule",
            "GradleBuild",
            "HelmBlueGreenCleanup",
            "HelmBlueGreenDeploy",
            "HelmBlueGreenRoleSwitch",
            "HelmDeploy",
            "HelmPublish",
            "Jenkins",
            "Matrix",
            "MvnBuild",
            "NpmBuild",
            "NpmPublish",
            "PostMatrix",
            "PowerShell",
            "PreMatrix",
            "PromoteBuild",
            "PublishBuildInfo",
            "PushArtifactoryPackage",
            "SignReleaseBundle",
            "TriggerPipeline",
            "XrayScan"
          ]
        }
      },
      "allOf": [
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["Bash"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/BashStep"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["CreateReleaseBundle"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/CreateReleaseBundle"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["DistributeReleaseBundle"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/DistributeReleaseBundle"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["DockerBuild"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/DockerBuild"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["DockerPush"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/DockerPush"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["GoBuild"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/GoBuild"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["GoPublishBinary"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/GoPublishBinary"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["GoPublishModule"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/GoPublishModule"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["GradleBuild"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/GradleBuild"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["HelmBlueGreenCleanup"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/HelmBlueGreenCleanup"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["HelmBlueGreenDeploy"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/HelmBlueGreenDeploy"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["HelmBlueGreenRoleSwitch"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/HelmBlueGreenRoleSwitch"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["HelmDeploy"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/HelmDeploy"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["HelmPublish"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/HelmPublish"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["Jenkins"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/Jenkins"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["Matrix"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/Matrix"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["PreMatrix"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/PreMatrix"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["PostMatrix"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/PostMatrix"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["MvnBuild"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/MvnBuild"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["NpmBuild"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/NpmBuild"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["NpmPublish"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/NpmPublish"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["PowerShell"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/PowerShell"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["PromoteBuild"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/PromoteBuild"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["PublishBuildInfo"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/PublishBuildInfo"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["PushArtifactoryPackage"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/PushArtifactoryPackage"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["SignReleaseBundle"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/SignReleaseBundle"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["TriggerPipeline"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/TriggerPipeline"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": ["XrayScan"]
              }
            }
          },
          "then": {
            "$ref": "#/definitions/stepTypes/XrayScan"
          }
        }
      ]
    },
    "stepTypes": {
      "BashStep": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            }
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onExecute": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type", "execution"],
        "additionalProperties": false
      },
      "CreateReleaseBundle": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "failOnValidate": {
                "type": ["string", "boolean"]
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "releaseBundleName": {
                "type": "string"
              },
              "releaseBundleVersion": {
                "type": "string"
              },
              "dryRun": {
                "type": ["string", "boolean"]
              },
              "sign": {
                "type": ["string", "boolean"]
              },
              "storeAtSourceArtifactory": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "releaseNotes": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "content": {
                    "type": "string"
                  },
                  "syntax": {
                    "type": "string",
                    "enum": ["markdown", "asciidoc", "plain_text"]
                  }
                },
                "required": ["content"]
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            },
            "required": ["releaseBundleName", "releaseBundleVersion"]
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type", "configuration"],
        "additionalProperties": false
      },
      "DistributeReleaseBundle": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "dryRun": {
                "type": ["string", "boolean"]
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            }
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type"],
        "additionalProperties": false
      },
      "DockerBuild": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              },
              "dockerFileLocation": {
                "type": "string"
              },
              "dockerFileName": {
                "type": "string"
              },
              "dockerImageName": {
                "type": "string"
              },
              "dockerImageTag": {
                "type": "string"
              },
              "dockerOptions": {
                "type": "string"
              }
            },
            "required": ["dockerImageName", "dockerImageTag"]
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type", "configuration"],
        "additionalProperties": false
      },
      "DockerPush": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "targetRepository": {
                "type": "string"
              },
              "forceXrayScan": {
                "type": ["string", "boolean"]
              },
              "failOnScan": {
                "type": ["string", "boolean"]
              },
              "autoPublishBuildInfo": {
                "type": ["string", "boolean"]
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            }
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type", "configuration"],
        "additionalProperties": false
      },
      "GoBuild": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              },
              "sourceLocation": {
                "type": "string"
              },
              "goCommand": {
                "type": "string"
              },
              "noRegistry": {
                "type": ["string", "boolean"]
              },
              "publishDeps": {
                "type": ["string", "boolean"]
              },
              "repository": {
                "type": "string"
              },
              "resolverRepo": {
                "type": "string"
              },
              "outputLocation": {
                "type": "string"
              },
              "outputFile": {
                "type": "string"
              }
            }
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type"],
        "additionalProperties": false
      },
      "GoPublishBinary": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              },
              "targetRepository": {
                "type": "string"
              },
              "forceXrayScan": {
                "type": ["string", "boolean"]
              },
              "failOnScan": {
                "type": ["string", "boolean"]
              },
              "autoPublishBuildInfo": {
                "type": ["string", "boolean"]
              }
            },
            "required": ["inputSteps", "targetRepository"]
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type", "configuration"],
        "additionalProperties": false
      },
      "GoPublishModule": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              },
              "sourceLocation": {
                "type": "string"
              },
              "version": {
                "type": "string"
              },
              "self": {
                "type": ["string", "boolean"]
              },
              "deps": {
                "type": "string"
              },
              "targetRepository": {
                "type": "string"
              },
              "resolverRepo": {
                "type": "string"
              },
              "forceXrayScan": {
                "type": ["string", "boolean"]
              },
              "failOnScan": {
                "type": ["string", "boolean"]
              },
              "autoPublishBuildInfo": {
                "type": ["string", "boolean"]
              }
            },
            "required": ["version", "targetRepository"]
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type", "configuration"],
        "additionalProperties": false
      },
      "GradleBuild": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              },
              "sourceLocation": {
                "type": "string"
              },
              "gradleCommand": {
                "type": "string"
              },
              "configFileLocation": {
                "type": "string"
              },
              "configFileName": {
                "type": "string"
              },
              "resolverRepo": {
                "type": "string"
              },
              "deployerRepo": {
                "type": "string"
              },
              "usesPlugin": {
                "type": ["string", "boolean"]
              },
              "useWrapper": {
                "type": ["string", "boolean"]
              },
              "forceXrayScan": {
                "type": ["string", "boolean"]
              },
              "failOnScan": {
                "type": ["string", "boolean"]
              },
              "autoPublishBuildInfo": {
                "type": ["string", "boolean"]
              }
            },
            "required": ["gradleCommand"]
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type", "configuration"],
        "additionalProperties": false
      },
      "HelmBlueGreenCleanup": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "deployStep": {
                "type": "string"
              },
              "flags": {
                "type": "string"
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            },
            "required": ["deployStep"]
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["configuration", "name", "type"],
        "additionalProperties": false
      },
      "HelmBlueGreenDeploy": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "helmVersion": {
                "type": ["string", "integer"],
                "enum": ["2", "3", 2, 3]
              },
              "namespace": {
                "type": "string"
              },
              "blueReleaseName": {
                "type": "string"
              },
              "blueValueFilePaths": {
                "type": "array"
              },
              "blueFlags": {
                "type": "string"
              },
              "greenReleaseName": {
                "type": "string"
              },
              "greenValueFilePaths": {
                "type": "array"
              },
              "greenFlags": {
                "type": "string"
              },
              "roleServices": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "blueReferenceName": {
                      "type": "string"
                    },
                    "greenReferenceName": {
                      "type": "string"
                    },
                    "idleName": {
                      "type": "string"
                    },
                    "idleCustomProperties": {
                      "type": "string"
                    },
                    "liveName": {
                      "type": "string"
                    },
                    "liveCustomProperties": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "blueReferenceName",
                    "greenReferenceName",
                    "idleName",
                    "liveName"
                  ],
                  "additionalProperties": false
                }
              },
              "chartPath": {
                "type": "string"
              },
              "chartName": {
                "type": "string"
              },
              "chartVersion": {
                "type": "string"
              },
              "dryRun": {
                "type": ["string", "boolean"]
              },
              "lint": {
                "type": ["string", "boolean"]
              },
              "lintFlags": {
                "type": "string"
              },
              "test": {
                "type": ["string", "boolean"]
              },
              "testFlags": {
                "type": "string"
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            },
            "required": [
              "namespace",
              "blueReleaseName",
              "greenReleaseName",
              "roleServices"
            ]
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["configuration", "name", "type"],
        "additionalProperties": false
      },
      "HelmBlueGreenRoleSwitch": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "deployStep": {
                "type": "string"
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            },
            "required": ["deployStep"]
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["configuration", "name", "type"],
        "additionalProperties": false
      },
      "HelmDeploy": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "helmVersion": {
                "type": ["string", "integer"],
                "enum": ["2", "3", 2, 3]
              },
              "chartPath": {
                "type": "string"
              },
              "chartName": {
                "type": "string"
              },
              "chartVersion": {
                "type": "string"
              },
              "releaseName": {
                "type": "string"
              },
              "valueFilePaths": {
                "type": "array"
              },
              "namespace": {
                "type": "string"
              },
              "flags": {
                "type": "string"
              },
              "dryRun": {
                "type": ["string", "boolean"]
              },
              "lint": {
                "type": ["string", "boolean"]
              },
              "lintFlags": {
                "type": "string"
              },
              "test": {
                "type": ["string", "boolean"]
              },
              "testFlags": {
                "type": "string"
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            },
            "required": ["releaseName"]
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["configuration", "name", "type"],
        "additionalProperties": false
      },
      "HelmPublish": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "chartPath": {
                "type": "string"
              },
              "forceXrayScan": {
                "type": ["string", "boolean"]
              },
              "autoPublishBuildInfo": {
                "type": ["string", "boolean"]
              },
              "flags": {
                "type": "string"
              },
              "helmVersion": {
                "type": ["string", "integer"],
                "enum": ["2", "3", 2, 3]
              },
              "valueFilePaths": {
                "type": "array"
              },
              "lint": {
                "type": ["string", "boolean"]
              },
              "lintFlags": {
                "type": "string"
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            },
            "required": ["chartPath"]
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["configuration", "name", "type"],
        "additionalProperties": false
      },
      "Jenkins": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "chronological": {
                "type": "boolean"
              },
              "jenkinsJobName": {
                "type": "string"
              },
              "jenkinsBranchName": {
                "type": "string"
              },
              "buildParameters": {
                "type": "object",
                "additionalProperties": {
                  "type": ["string", "number"]
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              }
            },
            "required": ["jenkinsJobName"]
          }
        },
        "required": ["configuration", "name", "type"],
        "additionalProperties": false
      },
      "Matrix": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "stepMode": {
            "type": "string",
            "enum": ["Bash", "Powershell"]
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "multiNode": {
                "type": "boolean"
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            }
          },
          "stepletMultipliers": {
            "type": "object",
            "properties": {
              "environmentVariables": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "additionalProperties": true
                },
                "additionalProperties": false
              },
              "runtimes": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": ["image", "host"]
                    }
                  },
                  "required": ["type"],
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["image"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["image"]
                      },
                      "image": {
                        "type": "object",
                        "if": {
                          "properties": {
                            "auto": {
                              "type": "object"
                            }
                          },
                          "required": ["auto"]
                        },
                        "then": {
                          "additionalProperties": false,
                          "properties": {
                            "auto": {
                              "type": "object",
                              "additionalProperties": false,
                              "required": ["language", "versions"],
                              "properties": {
                                "language": {
                                  "type": "string"
                                },
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": ["string", "number"]
                                  }
                                }
                              }
                            }
                          }
                        },
                        "else": {
                          "additionalProperties": false,
                          "properties": {
                            "custom": {
                              "type": "object",
                              "additionalProperties": false,
                              "required": ["name", "tag"],
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "tag": {
                                  "type": "string"
                                },
                                "registry": {
                                  "type": "string"
                                },
                                "sourceRepository": {
                                  "type": "string"
                                },
                                "region": {
                                  "type": "string"
                                },
                                "options": {
                                  "type": "string"
                                },
                                "autoPull": {
                                  "type": "boolean"
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  "else": {
                    "if": {
                      "properties": {
                        "type": {
                          "enum": ["host"]
                        }
                      }
                    },
                    "then": {
                      "properties": {
                        "type": {
                          "enum": ["host"]
                        }
                      },
                      "additionalProperties": false
                    }
                  }
                },
                "additionalProperties": false
              },
              "exclude": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "environmentVariables": {
                      "type": "object"
                    },
                    "runtime": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": ["image", "host"]
                        }
                      },
                      "required": ["type"],
                      "if": {
                        "properties": {
                          "type": {
                            "enum": ["image"]
                          }
                        }
                      },
                      "then": {
                        "properties": {
                          "type": {
                            "enum": ["image"]
                          },
                          "image": {
                            "type": "object",
                            "if": {
                              "properties": {
                                "auto": {
                                  "type": "object"
                                }
                              },
                              "required": ["auto"]
                            },
                            "then": {
                              "additionalProperties": false,
                              "properties": {
                                "auto": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "required": ["language", "versions"],
                                  "properties": {
                                    "language": {
                                      "type": "string"
                                    },
                                    "versions": {
                                      "type": "array",
                                      "minItems": 1,
                                      "items": {
                                        "type": ["string", "number"]
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "else": {
                              "additionalProperties": false,
                              "properties": {
                                "custom": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "required": ["name", "tag"],
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "tag": {
                                      "type": "string"
                                    },
                                    "registry": {
                                      "type": "string"
                                    },
                                    "sourceRepository": {
                                      "type": "string"
                                    },
                                    "region": {
                                      "type": "string"
                                    },
                                    "options": {
                                      "type": "string"
                                    },
                                    "autoPull": {
                                      "type": "boolean"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "if": {
                          "properties": {
                            "type": {
                              "enum": ["host"]
                            }
                          }
                        },
                        "then": {
                          "properties": {
                            "type": {
                              "enum": ["host"]
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              },
              "fastFail": {
                "type": "boolean",
                "additionalProperties": false
              },
              "allowFailures": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "environmentVariables": {
                      "type": "object"
                    },
                    "runtime": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": ["image", "host"]
                        }
                      },
                      "required": ["type"],
                      "if": {
                        "properties": {
                          "type": {
                            "enum": ["image"]
                          }
                        }
                      },
                      "then": {
                        "properties": {
                          "type": {
                            "enum": ["image"]
                          },
                          "image": {
                            "type": "object",
                            "if": {
                              "properties": {
                                "auto": {
                                  "type": "object"
                                }
                              },
                              "required": ["auto"]
                            },
                            "then": {
                              "additionalProperties": false,
                              "properties": {
                                "auto": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "required": ["language", "versions"],
                                  "properties": {
                                    "language": {
                                      "type": "string"
                                    },
                                    "versions": {
                                      "type": "array",
                                      "minItems": 1,
                                      "items": {
                                        "type": ["string", "number"]
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "else": {
                              "additionalProperties": false,
                              "properties": {
                                "custom": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "required": ["name", "tag"],
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "tag": {
                                      "type": "string"
                                    },
                                    "registry": {
                                      "type": "string"
                                    },
                                    "sourceRepository": {
                                      "type": "string"
                                    },
                                    "region": {
                                      "type": "string"
                                    },
                                    "options": {
                                      "type": "string"
                                    },
                                    "autoPull": {
                                      "type": "boolean"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "if": {
                          "properties": {
                            "type": {
                              "enum": ["host"]
                            }
                          }
                        },
                        "then": {
                          "properties": {
                            "type": {
                              "enum": ["host"]
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "additionalProperties": false
              },
              "additionalProperties": false
            },
            "additionalProperties": false
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onExecute": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type", "execution"],
        "additionalProperties": false
      },
      "PreMatrix": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            }
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onExecute": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type", "execution"],
        "additionalProperties": false
      },
      "PostMatrix": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            }
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onExecute": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type", "execution"],
        "additionalProperties": false
      },
      "MvnBuild": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "forceXrayScan": {
                "type": ["string", "boolean"]
              },
              "failOnScan": {
                "type": ["string", "boolean"]
              },
              "autoPublishBuildInfo": {
                "type": ["string", "boolean"]
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              },
              "sourceLocation": {
                "type": "string"
              },
              "mvnCommand": {
                "type": "string"
              },
              "configFileLocation": {
                "type": "string"
              },
              "configFileName": {
                "type": "string"
              },
              "resolverSnapshotRepo": {
                "type": "string"
              },
              "resolverReleaseRepo": {
                "type": "string"
              },
              "deployerSnapshotRepo": {
                "type": "string"
              },
              "deployerReleaseRepo": {
                "type": "string"
              }
            }
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type"],
        "additionalProperties": false
      },
      "NpmBuild": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "sourceLocation": {
                "type": "string"
              },
              "npmArgs": {
                "type": "string"
              },
              "repositoryName": {
                "type": "string"
              },
              "resolverRepo": {
                "type": "string"
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            }
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type"],
        "additionalProperties": false
      },
      "NpmPublish": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "repositoryName": {
                "type": "string"
              },
              "deployerRepo": {
                "type": "string"
              },
              "forceXrayScan": {
                "type": ["string", "boolean"]
              },
              "failOnScan": {
                "type": ["string", "boolean"]
              },
              "autoPublishBuildInfo": {
                "type": ["string", "boolean"]
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            },
            "required": ["inputSteps"]
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["configuration", "name", "type"],
        "additionalProperties": false
      },
      "PowerShell": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            }
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onExecute": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type", "execution"],
        "additionalProperties": false
      },
      "PromoteBuild": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "required": ["targetRepository"],
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "targetRepository": {
                "type": "string"
              },
              "includeDependencies": {
                "type": ["string", "boolean"]
              },
              "status": {
                "type": "string"
              },
              "comment": {
                "type": "string"
              },
              "copy": {
                "type": ["string", "boolean"]
              },
              "failOnValidate": {
                "type": ["string", "boolean"]
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            }
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type", "configuration"],
        "additionalProperties": false
      },
      "PublishBuildInfo": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "required": ["inputSteps"],
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "envInclude": {
                "type": "string"
              },
              "envExclude": {
                "type": "string"
              },
              "forceXrayScan": {
                "type": ["string", "boolean"]
              },
              "failOnScan": {
                "type": ["string", "boolean"]
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "maxItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 0,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            }
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type", "configuration"],
        "additionalProperties": false
      },
      "PushArtifactoryPackage": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "targetRepo": {
                "type": "string"
              },
              "forceXrayScan": {
                "type": ["string", "boolean"]
              },
              "failOnScan": {
                "type": ["string", "boolean"]
              },
              "autoPublishBuildInfo": {
                "type": ["string", "boolean"]
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            },
            "required": ["targetRepo", "inputSteps"]
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type", "configuration"],
        "additionalProperties": false
      },
      "SignReleaseBundle": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              }
            }
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type"],
        "additionalProperties": false
      },
      "TriggerPipeline": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              },
              "pipelineName": {
                "type": "string"
              },
              "stepName": {
                "type": "string"
              },
              "branchName": {
                "type": "string"
              },
              "projectKey": {
                "type": "string"
              },
              "waitForRunCompletion": {
                "type": "boolean"
              }
            },
            "required": ["pipelineName", "stepName"]
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type"],
        "additionalProperties": false
      },
      "XrayScan": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "affinityGroup": {
                "type": "string"
              },
              "timeoutSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "priority": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "nodePool": {
                "type": "string"
              },
              "chronological": {
                "type": "boolean"
              },
              "failOnScan": {
                "type": ["string", "boolean"]
              },
              "environmentVariables": {
                "$ref": "#/definitions/common/EnvironmentVariables"
              },
              "integrations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputSteps": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "success",
                          "failure",
                          "error",
                          "cancelled",
                          "skipped",
                          "unstable",
                          "timeout",
                          "stopped",
                          "deleted",
                          "cached"
                        ]
                      }
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "inputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "trigger": {
                      "type": "boolean"
                    },
                    "newVersionOnly": {
                      "type": "boolean"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "outputResources": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    }
                  },
                  "required": ["name"],
                  "additionalProperties": false
                }
              },
              "requiresApproval": {
                "$ref": "#/definitions/common/RequiresApproval"
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["image", "host"]
                  }
                },
                "required": ["type"],
                "if": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": ["image"]
                    },
                    "image": {
                      "type": "object",
                      "if": {
                        "properties": {
                          "auto": {
                            "type": "object"
                          }
                        },
                        "required": ["auto"]
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": ["language"],
                            "oneOf": [
                              {
                                "required": ["version"]
                              },
                              {
                                "required": ["versions"]
                              }
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "version": {
                                "type": ["string", "number"]
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": ["string", "number"]
                                }
                              },
                              "if": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                },
                                "required": ["version"]
                              },
                              "then": {
                                "properties": {
                                  "version": {
                                    "type": ["string", "number"]
                                  }
                                }
                              },
                              "else": {
                                "properties": {
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": ["string", "number"]
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "else": {
                        "additionalProperties": false,
                        "properties": {
                          "custom": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["name", "tag"],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": ["host"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              }
            }
          },
          "execution": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "onStart": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onSuccess": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onFailure": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onComplete": {
                "$ref": "#/definitions/common/StepExecutionStates"
              },
              "onCancel": {
                "$ref": "#/definitions/common/StepExecutionStates"
              }
            }
          }
        },
        "required": ["name", "type"],
        "additionalProperties": false
      }
    },
    "common": {
      "EnvironmentVariables": {
        "type": "object",
        "additionalProperties": {
          "type": ["string", "number", "object"],
          "properties": {
            "description": {
              "type": "string"
            },
            "default": {
              "type": ["string", "number"]
            },
            "values": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": ["string", "number"]
              }
            },
            "allowCustom": {
              "type": "boolean"
            },
            "allowMultipleValues": {
              "type": "boolean"
            },
            "defaultMultipleValues": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": ["string", "number"]
              }
            }
          },
          "anyOf": [
            { "required": ["default"] },
            { "required": ["defaultMultipleValues"] }
          ]
        }
      },
      "RequiresApproval": {
        "type": ["boolean", "object"],
        "additionalProperties": false,
        "properties": {
          "timeoutSeconds": {
            "type": "integer",
            "exclusiveMinimum": 0
          },
          "approvers": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string"
            }
          },
          "notifications": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "integrationName": {
                  "type": "string"
                },
                "recipients": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": ["integrationName"]
            }
          }
        }
      },
      "Task": {
        "type": "object",
        "properties": {
          "task": {
            "type": "string"
          },
          "repository": {
            "type": "string"
          },
          "id": {
            "type": "string",
            "pattern": "^[a-zA-Z0-9_-]+$"
          },
          "condition": {
            "type": "string"
          },
          "input": {
            "type": "object"
          },
          "rtIntegration": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "required": ["task"]
      },
      "StepExecutionStates": {
        "type": "array",
        "items": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/definitions/common/Task"
            }
          ]
        }
      }
    }
  }
}
