{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/jfrog-pipelines-yml-dsl/latest.json",
  "x-lintel": {
    "source": "https://www.schemastore.org/jfrog-pipelines.json",
    "sourceSha256": "128d8ac65b33cc37b93527afc4ff0eb7cbe0999d0c281c4727104285f8383b21",
    "fileMatch": [
      "**/.jfrog-pipelines/**/*.yml",
      "**/.jfrog-pipelines/**/*.yaml"
    ],
    "parsers": [
      "yaml"
    ]
  },
  "$ref": "#/$defs/JFrog-Pipelines",
  "$defs": {
    "JFrog-Pipelines": {
      "title": "JFrog-Pipelines",
      "description": "<https://www.jfrog.com/confluence/display/JFROG/Pipelines+Developer+Guide>",
      "type": "object",
      "anyOf": [
        {
          "required": [
            "pipelines"
          ]
        },
        {
          "required": [
            "resources"
          ]
        },
        {
          "required": [
            "include"
          ]
        }
      ],
      "properties": {
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Resource"
          }
        },
        "pipelines": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Pipeline"
          }
        },
        "template": {
          "type": "boolean"
        },
        "valuesFilePath": {
          "type": "string"
        },
        "include": {
          "type": "object",
          "properties": {
            "template": {
              "type": "string"
            }
          }
        }
      },
      "additionalProperties": false,
      "patternProperties": {
        "^.*$": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "integer"
            },
            {
              "type": "boolean"
            },
            {
              "type": "array"
            },
            {
              "type": "object"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "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": "#/$defs/Aql"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "BuildInfo"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/BuildInfo"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "CronTrigger"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/CronTrigger"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "DistributionRule"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/DistributionRule"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "FileSpec"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/FileSpec"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "GitRepo"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/GitRepo"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "HelmChart"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/HelmChart"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "Image"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/Image"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "IncomingWebhook"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/IncomingWebhook"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "OutgoingWebhook"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/OutgoingWebhook"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "PropertyBag"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/PropertyBag"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "ReleaseBundle"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/ReleaseBundle"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "RemoteFile"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/RemoteFile"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "VmCluster"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/VmCluster"
          }
        }
      ]
    },
    "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": "#/$defs/BashStep"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "CreateReleaseBundle"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/CreateReleaseBundle"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "DistributeReleaseBundle"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/DistributeReleaseBundle"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "DockerBuild"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/DockerBuild"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "DockerPush"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/DockerPush"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "GoBuild"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/GoBuild"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "GoPublishBinary"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/GoPublishBinary"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "GoPublishModule"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/GoPublishModule"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "GradleBuild"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/GradleBuild"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "HelmBlueGreenCleanup"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/HelmBlueGreenCleanup"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "HelmBlueGreenDeploy"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/HelmBlueGreenDeploy"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "HelmBlueGreenRoleSwitch"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/HelmBlueGreenRoleSwitch"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "HelmDeploy"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/HelmDeploy"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "HelmPublish"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/HelmPublish"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "Jenkins"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/Jenkins"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "Matrix"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/Matrix"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "PreMatrix"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/PreMatrix"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "PostMatrix"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/PostMatrix"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "MvnBuild"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/MvnBuild"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "NpmBuild"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/NpmBuild"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "NpmPublish"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/NpmPublish"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "PowerShell"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/PowerShell"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "PromoteBuild"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/PromoteBuild"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "PublishBuildInfo"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/PublishBuildInfo"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "PushArtifactoryPackage"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/PushArtifactoryPackage"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "SignReleaseBundle"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/SignReleaseBundle"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "TriggerPipeline"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/TriggerPipeline"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "enum": [
                  "XrayScan"
                ]
              }
            }
          },
          "then": {
            "$ref": "#/$defs/XrayScan"
          }
        }
      ]
    },
    "Pipeline": {
      "title": "Pipeline",
      "description": "<https://www.jfrog.com/confluence/display/JFROG/Creating+Pipelines>",
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "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",
                    "oneOf": [
                      {
                        "required": [
                          "auto"
                        ]
                      },
                      {
                        "required": [
                          "custom"
                        ]
                      }
                    ],
                    "properties": {
                      "auto": {
                        "type": "object",
                        "required": [
                          "language",
                          "versions"
                        ],
                        "properties": {
                          "language": {
                            "type": "string"
                          },
                          "versions": {
                            "type": "array",
                            "items": {
                              "type": [
                                "string",
                                "number"
                              ]
                            }
                          }
                        }
                      },
                      "custom": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "tag": {
                            "type": "string"
                          },
                          "options": {
                            "type": "string"
                          },
                          "registry": {
                            "type": "string"
                          },
                          "sourceRepository": {
                            "type": "string"
                          },
                          "region": {
                            "type": "string"
                          },
                          "autoPull": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "name",
                          "tag"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "properties": {
                  "type": {
                    "enum": [
                      "host"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              }
            },
            "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"
            }
          },
          "additionalProperties": false
        },
        "preRun": {
          "type": "object",
          "properties": {
            "configuration": {
              "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",
                        "oneOf": [
                          {
                            "required": [
                              "auto"
                            ]
                          },
                          {
                            "required": [
                              "custom"
                            ]
                          }
                        ],
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": [
                              "language",
                              "versions"
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "versions": {
                                "type": "array",
                                "items": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            }
                          },
                          "custom": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "name",
                              "tag"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false,
                    "type": "object"
                  },
                  "else": {
                    "properties": {
                      "type": {
                        "enum": [
                          "host"
                        ]
                      }
                    },
                    "additionalProperties": false,
                    "type": "object"
                  }
                },
                "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"
                }
              },
              "additionalProperties": false,
              "type": "object"
            },
            "execution": {
              "type": "object",
              "properties": {
                "onStart": {
                  "$ref": "#/$defs/pipelineCommon/execution"
                },
                "onExecute": {
                  "$ref": "#/$defs/pipelineCommon/execution"
                },
                "onSuccess": {
                  "$ref": "#/$defs/pipelineCommon/execution"
                },
                "onFailure": {
                  "$ref": "#/$defs/pipelineCommon/execution"
                },
                "onComplete": {
                  "$ref": "#/$defs/pipelineCommon/execution"
                },
                "onCancel": {
                  "$ref": "#/$defs/pipelineCommon/execution"
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "postRun": {
          "type": "object",
          "properties": {
            "configuration": {
              "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",
                        "oneOf": [
                          {
                            "required": [
                              "auto"
                            ]
                          },
                          {
                            "required": [
                              "custom"
                            ]
                          }
                        ],
                        "properties": {
                          "auto": {
                            "type": "object",
                            "required": [
                              "language",
                              "versions"
                            ],
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "versions": {
                                "type": "array",
                                "items": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            }
                          },
                          "custom": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "name",
                              "tag"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false,
                    "type": "object"
                  },
                  "else": {
                    "properties": {
                      "type": {
                        "enum": [
                          "host"
                        ]
                      }
                    },
                    "additionalProperties": false,
                    "type": "object"
                  }
                },
                "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"
                }
              },
              "additionalProperties": false,
              "type": "object"
            },
            "execution": {
              "type": "object",
              "properties": {
                "onStart": {
                  "$ref": "#/$defs/pipelineCommon/execution"
                },
                "onExecute": {
                  "$ref": "#/$defs/pipelineCommon/execution"
                },
                "onSuccess": {
                  "$ref": "#/$defs/pipelineCommon/execution"
                },
                "onFailure": {
                  "$ref": "#/$defs/pipelineCommon/execution"
                },
                "onComplete": {
                  "$ref": "#/$defs/pipelineCommon/execution"
                },
                "onCancel": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "$ref": "#/$defs/Task"
                    }
                  ]
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "steps": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/Step"
          }
        }
      },
      "required": [
        "name",
        "steps"
      ],
      "additionalProperties": false
    },
    "pipelineCommon": {
      "execution": {
        "type": "array",
        "items": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/definitions/common/Task"
            }
          ]
        }
      }
    },
    "Aql": {
      "type": "object",
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "query",
            "sourceArtifactory"
          ],
          "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
              }
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "BuildInfo": {
      "type": "object",
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "sourceArtifactory"
          ],
          "properties": {
            "sourceArtifactory": {
              "type": "string"
            },
            "buildNumber": {
              "type": [
                "integer",
                "string"
              ]
            },
            "buildName": {
              "type": "string"
            },
            "externalCI": {
              "type": "string"
            },
            "pin": {
              "type": "object",
              "anyOf": [
                {
                  "required": [
                    "versionId"
                  ]
                },
                {
                  "required": [
                    "buildName",
                    "buildNumber"
                  ]
                }
              ],
              "properties": {
                "versionId": {
                  "type": "integer",
                  "minimum": 1
                },
                "buildName": {
                  "type": "string"
                },
                "buildNumber": {
                  "type": [
                    "integer",
                    "string"
                  ]
                },
                "targetRepo": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "CronTrigger": {
      "type": "object",
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "interval"
          ],
          "properties": {
            "interval": {
              "type": "string"
            },
            "branches": {
              "type": "object",
              "properties": {
                "include": {
                  "type": "string"
                },
                "exclude": {
                  "type": "string"
                }
              }
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "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",
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "sourceArtifactory"
          ],
          "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"
              ]
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "GitRepo": {
      "type": "object",
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "gitProvider",
            "path"
          ],
          "properties": {
            "gitProvider": {
              "type": "string"
            },
            "path": {
              "type": "string"
            },
            "cloneProtocol": {
              "type": "string",
              "enum": [
                "ssh",
                "https"
              ]
            },
            "files": {
              "type": "object",
              "properties": {
                "include": {
                  "type": "string",
                  "format": "regex"
                },
                "exclude": {
                  "type": "string",
                  "format": "regex"
                }
              },
              "additionalProperties": false
            },
            "branches": {
              "type": "object",
              "properties": {
                "include": {
                  "type": "string",
                  "format": "regex"
                },
                "exclude": {
                  "type": "string",
                  "format": "regex"
                }
              },
              "additionalProperties": false
            },
            "pullRequestSourceBranches": {
              "type": "object",
              "properties": {
                "include": {
                  "type": "string",
                  "format": "regex"
                },
                "exclude": {
                  "type": "string",
                  "format": "regex"
                }
              },
              "additionalProperties": false
            },
            "pullRequestTargetBranches": {
              "type": "object",
              "properties": {
                "include": {
                  "type": "string",
                  "format": "regex"
                },
                "exclude": {
                  "type": "string",
                  "format": "regex"
                }
              },
              "additionalProperties": false
            },
            "tags": {
              "type": "object",
              "properties": {
                "include": {
                  "type": "string",
                  "format": "regex"
                },
                "exclude": {
                  "type": "string",
                  "format": "regex"
                }
              },
              "additionalProperties": false
            },
            "buildOn": {
              "type": "object",
              "properties": {
                "commit": {
                  "type": "boolean"
                },
                "pullRequestCreate": {
                  "type": "boolean"
                },
                "pullRequestClose": {
                  "type": "boolean"
                },
                "releaseCreate": {
                  "type": "boolean"
                },
                "tagCreate": {
                  "type": "boolean"
                },
                "branchCreate": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false
            },
            "cancelPendingRunsOn": {
              "type": "object",
              "properties": {
                "newCommit": {
                  "type": "boolean"
                },
                "pullRequestUpdate": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false
            },
            "shallowDepth": {
              "type": "integer",
              "minimum": 1
            },
            "pin": {
              "type": "object",
              "anyOf": [
                {
                  "required": [
                    "versionId"
                  ]
                },
                {
                  "required": [
                    "sha"
                  ]
                }
              ],
              "properties": {
                "versionId": {
                  "type": "integer",
                  "minimum": 1
                },
                "sha": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "HelmChart": {
      "type": "object",
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "sourceArtifactory",
            "repository",
            "chart",
            "version"
          ],
          "properties": {
            "sourceArtifactory": {
              "type": "string"
            },
            "repository": {
              "type": "string"
            },
            "version": {
              "type": "string"
            },
            "chart": {
              "type": "string"
            },
            "pin": {
              "type": "object",
              "anyOf": [
                {
                  "required": [
                    "versionId"
                  ]
                },
                {
                  "required": [
                    "version"
                  ]
                }
              ],
              "properties": {
                "versionId": {
                  "type": "integer",
                  "minimum": 1
                },
                "version": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "Image": {
      "type": "object",
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "registry",
            "imageName",
            "imageTag"
          ],
          "properties": {
            "registry": {
              "type": "string"
            },
            "sourceRepository": {
              "type": "string"
            },
            "imageName": {
              "type": "string"
            },
            "imageTag": {
              "type": "string"
            },
            "autoPull": {
              "type": [
                "boolean",
                "string"
              ]
            },
            "region": {
              "type": "string"
            },
            "pin": {
              "type": "object",
              "anyOf": [
                {
                  "required": [
                    "versionId"
                  ]
                },
                {
                  "required": [
                    "imageTag"
                  ]
                }
              ],
              "properties": {
                "versionId": {
                  "type": "integer",
                  "minimum": 1
                },
                "imageTag": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "IncomingWebhook": {
      "type": "object",
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "webhookName"
          ],
          "properties": {
            "webhookName": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "OutgoingWebhook": {
      "type": "object",
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "webhookName"
          ],
          "properties": {
            "webhookName": {
              "type": "string"
            },
            "method": {
              "type": "string",
              "enum": [
                "GET",
                "PUT",
                "POST",
                "DELETE",
                "PATCH"
              ]
            },
            "parameters": {
              "type": "string"
            },
            "path": {
              "type": "string"
            },
            "headers": {
              "type": "object"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "PropertyBag": {
      "type": "object",
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [],
          "properties": {
            "pin": {
              "type": "object",
              "properties": {
                "versionId": {
                  "type": "integer",
                  "minimum": 1
                }
              },
              "additionalProperties": true
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false
    },
    "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",
              "anyOf": [
                {
                  "required": [
                    "versionId"
                  ]
                },
                {
                  "required": [
                    "name",
                    "version"
                  ]
                }
              ],
              "properties": {
                "versionId": {
                  "type": "integer",
                  "minimum": 1
                },
                "name": {
                  "type": "string"
                },
                "version": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "required": [
            "name",
            "version",
            "sourceDistribution"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "additionalProperties": false
    },
    "RemoteFile": {
      "type": "object",
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "anyOf": [
            {
              "required": [
                "source",
                "fileLocation"
              ]
            },
            {
              "required": [
                "source",
                "fileName"
              ]
            }
          ],
          "properties": {
            "source": {
              "type": "string"
            },
            "fileLocation": {
              "type": "string"
            },
            "fileName": {
              "type": "string"
            },
            "fileDateTime": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "VmCluster": {
      "type": "object",
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "sshKey",
            "targets"
          ],
          "properties": {
            "sshKey": {
              "type": "string"
            },
            "targets": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "BashStep": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "properties": {
            "affinityGroup": {
              "type": "string"
            },
            "timeoutSeconds": {
              "type": "integer",
              "exclusiveMinimum": 0
            },
            "priority": {
              "type": "integer",
              "minimum": 0,
              "maximum": 10000
            },
            "nodePool": {
              "type": "string"
            },
            "chronological": {
              "type": "boolean"
            },
            "environmentVariables": {
              "$ref": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onExecute": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type",
        "execution"
      ],
      "additionalProperties": false
    },
    "CreateReleaseBundle": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "releaseBundleName",
            "releaseBundleVersion"
          ],
          "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": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "releaseBundleName": {
              "type": "string"
            },
            "releaseBundleVersion": {
              "type": "string"
            },
            "dryRun": {
              "type": [
                "string",
                "boolean"
              ]
            },
            "sign": {
              "type": [
                "string",
                "boolean"
              ]
            },
            "storeAtSourceArtifactory": {
              "type": "string"
            },
            "description": {
              "type": "string"
            },
            "releaseNotes": {
              "type": "object",
              "required": [
                "content"
              ],
              "properties": {
                "content": {
                  "type": "string"
                },
                "syntax": {
                  "type": "string",
                  "enum": [
                    "markdown",
                    "asciidoc",
                    "plain_text"
                  ]
                }
              },
              "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": "#/$defs/common/RequiresApproval"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "additionalProperties": false
    },
    "DistributeReleaseBundle": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "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": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type"
      ],
      "additionalProperties": false
    },
    "DockerBuild": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "dockerImageName",
            "dockerImageTag"
          ],
          "properties": {
            "affinityGroup": {
              "type": "string"
            },
            "timeoutSeconds": {
              "type": "integer",
              "exclusiveMinimum": 0
            },
            "priority": {
              "type": "integer",
              "minimum": 0,
              "maximum": 10000
            },
            "nodePool": {
              "type": "string"
            },
            "chronological": {
              "type": "boolean"
            },
            "environmentVariables": {
              "$ref": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            },
            "dockerFileLocation": {
              "type": "string"
            },
            "dockerFileName": {
              "type": "string"
            },
            "dockerImageName": {
              "type": "string"
            },
            "dockerImageTag": {
              "type": "string"
            },
            "dockerOptions": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "additionalProperties": false
    },
    "DockerPush": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "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": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "additionalProperties": false
    },
    "GoBuild": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "properties": {
            "affinityGroup": {
              "type": "string"
            },
            "timeoutSeconds": {
              "type": "integer",
              "exclusiveMinimum": 0
            },
            "priority": {
              "type": "integer",
              "minimum": 0,
              "maximum": 10000
            },
            "nodePool": {
              "type": "string"
            },
            "chronological": {
              "type": "boolean"
            },
            "environmentVariables": {
              "$ref": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/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"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type"
      ],
      "additionalProperties": false
    },
    "GoPublishBinary": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "inputSteps",
            "targetRepository"
          ],
          "properties": {
            "affinityGroup": {
              "type": "string"
            },
            "timeoutSeconds": {
              "type": "integer",
              "exclusiveMinimum": 0
            },
            "priority": {
              "type": "integer",
              "minimum": 0,
              "maximum": 10000
            },
            "nodePool": {
              "type": "string"
            },
            "chronological": {
              "type": "boolean"
            },
            "environmentVariables": {
              "$ref": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            },
            "targetRepository": {
              "type": "string"
            },
            "forceXrayScan": {
              "type": [
                "string",
                "boolean"
              ]
            },
            "failOnScan": {
              "type": [
                "string",
                "boolean"
              ]
            },
            "autoPublishBuildInfo": {
              "type": [
                "string",
                "boolean"
              ]
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "additionalProperties": false
    },
    "GoPublishModule": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "version",
            "targetRepository"
          ],
          "properties": {
            "affinityGroup": {
              "type": "string"
            },
            "timeoutSeconds": {
              "type": "integer",
              "exclusiveMinimum": 0
            },
            "priority": {
              "type": "integer",
              "minimum": 0,
              "maximum": 10000
            },
            "nodePool": {
              "type": "string"
            },
            "chronological": {
              "type": "boolean"
            },
            "environmentVariables": {
              "$ref": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/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"
              ]
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "additionalProperties": false
    },
    "GradleBuild": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "gradleCommand"
          ],
          "properties": {
            "affinityGroup": {
              "type": "string"
            },
            "timeoutSeconds": {
              "type": "integer",
              "exclusiveMinimum": 0
            },
            "priority": {
              "type": "integer",
              "minimum": 0,
              "maximum": 10000
            },
            "nodePool": {
              "type": "string"
            },
            "chronological": {
              "type": "boolean"
            },
            "environmentVariables": {
              "$ref": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/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"
              ]
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "additionalProperties": false
    },
    "HelmBlueGreenCleanup": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "deployStep"
          ],
          "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": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "configuration",
        "name",
        "type"
      ],
      "additionalProperties": false
    },
    "HelmBlueGreenDeploy": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "namespace",
            "blueReleaseName",
            "greenReleaseName",
            "roleServices"
          ],
          "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": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "configuration",
        "name",
        "type"
      ],
      "additionalProperties": false
    },
    "HelmBlueGreenRoleSwitch": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "deployStep"
          ],
          "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": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "configuration",
        "name",
        "type"
      ],
      "additionalProperties": false
    },
    "HelmDeploy": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "releaseName"
          ],
          "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": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "configuration",
        "name",
        "type"
      ],
      "additionalProperties": false
    },
    "HelmPublish": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "chartPath"
          ],
          "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": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "configuration",
        "name",
        "type"
      ],
      "additionalProperties": false
    },
    "Jenkins": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "jenkinsJobName"
          ],
          "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": "#/$defs/common/RequiresApproval"
            },
            "integrations": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              }
            }
          },
          "additionalProperties": false
        }
      },
      "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",
          "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": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            }
          },
          "additionalProperties": false
        },
        "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"
                        ],
                        "type": "object"
                      },
                      "then": {
                        "properties": {
                          "auto": {
                            "type": "object",
                            "properties": {
                              "language": {
                                "type": "string"
                              },
                              "versions": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "language",
                              "versions"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false,
                        "type": "object"
                      },
                      "else": {
                        "properties": {
                          "custom": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "tag": {
                                "type": "string"
                              },
                              "registry": {
                                "type": "string"
                              },
                              "sourceRepository": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "options": {
                                "type": "string"
                              },
                              "autoPull": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "name",
                              "tag"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false,
                        "type": "object"
                      }
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                },
                "else": {
                  "if": {
                    "properties": {
                      "type": {
                        "enum": [
                          "host"
                        ]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "enum": [
                          "host"
                        ]
                      }
                    },
                    "additionalProperties": false,
                    "type": "object"
                  }
                }
              },
              "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"
                            ],
                            "type": "object"
                          },
                          "then": {
                            "properties": {
                              "auto": {
                                "type": "object",
                                "properties": {
                                  "language": {
                                    "type": "string"
                                  },
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": [
                                        "string",
                                        "number"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "language",
                                  "versions"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "additionalProperties": false,
                            "type": "object"
                          },
                          "else": {
                            "properties": {
                              "custom": {
                                "type": "object",
                                "properties": {
                                  "name": {
                                    "type": "string"
                                  },
                                  "tag": {
                                    "type": "string"
                                  },
                                  "registry": {
                                    "type": "string"
                                  },
                                  "sourceRepository": {
                                    "type": "string"
                                  },
                                  "region": {
                                    "type": "string"
                                  },
                                  "options": {
                                    "type": "string"
                                  },
                                  "autoPull": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "name",
                                  "tag"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "additionalProperties": false,
                            "type": "object"
                          }
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "if": {
                        "properties": {
                          "type": {
                            "enum": [
                              "host"
                            ]
                          }
                        }
                      },
                      "then": {
                        "properties": {
                          "type": {
                            "enum": [
                              "host"
                            ]
                          }
                        },
                        "additionalProperties": false,
                        "type": "object"
                      }
                    }
                  },
                  "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"
                            ],
                            "type": "object"
                          },
                          "then": {
                            "properties": {
                              "auto": {
                                "type": "object",
                                "properties": {
                                  "language": {
                                    "type": "string"
                                  },
                                  "versions": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": [
                                        "string",
                                        "number"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "language",
                                  "versions"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "additionalProperties": false,
                            "type": "object"
                          },
                          "else": {
                            "properties": {
                              "custom": {
                                "type": "object",
                                "properties": {
                                  "name": {
                                    "type": "string"
                                  },
                                  "tag": {
                                    "type": "string"
                                  },
                                  "registry": {
                                    "type": "string"
                                  },
                                  "sourceRepository": {
                                    "type": "string"
                                  },
                                  "region": {
                                    "type": "string"
                                  },
                                  "options": {
                                    "type": "string"
                                  },
                                  "autoPull": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "name",
                                  "tag"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "additionalProperties": false,
                            "type": "object"
                          }
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "if": {
                        "properties": {
                          "type": {
                            "enum": [
                              "host"
                            ]
                          }
                        }
                      },
                      "then": {
                        "properties": {
                          "type": {
                            "enum": [
                              "host"
                            ]
                          }
                        },
                        "additionalProperties": false,
                        "type": "object"
                      }
                    }
                  }
                },
                "additionalProperties": false
              },
              "additionalProperties": false
            },
            "additionalProperties": false
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onExecute": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type",
        "execution"
      ],
      "additionalProperties": false
    },
    "PreMatrix": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "properties": {
            "affinityGroup": {
              "type": "string"
            },
            "timeoutSeconds": {
              "type": "integer",
              "exclusiveMinimum": 0
            },
            "priority": {
              "type": "integer",
              "minimum": 0,
              "maximum": 10000
            },
            "nodePool": {
              "type": "string"
            },
            "chronological": {
              "type": "boolean"
            },
            "environmentVariables": {
              "$ref": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onExecute": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type",
        "execution"
      ],
      "additionalProperties": false
    },
    "PostMatrix": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "properties": {
            "affinityGroup": {
              "type": "string"
            },
            "timeoutSeconds": {
              "type": "integer",
              "exclusiveMinimum": 0
            },
            "priority": {
              "type": "integer",
              "minimum": 0,
              "maximum": 10000
            },
            "nodePool": {
              "type": "string"
            },
            "chronological": {
              "type": "boolean"
            },
            "environmentVariables": {
              "$ref": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onExecute": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type",
        "execution"
      ],
      "additionalProperties": false
    },
    "MvnBuild": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "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": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/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"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type"
      ],
      "additionalProperties": false
    },
    "NpmBuild": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "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": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type"
      ],
      "additionalProperties": false
    },
    "NpmPublish": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "inputSteps"
          ],
          "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": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "configuration",
        "name",
        "type"
      ],
      "additionalProperties": false
    },
    "PowerShell": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "properties": {
            "affinityGroup": {
              "type": "string"
            },
            "timeoutSeconds": {
              "type": "integer",
              "exclusiveMinimum": 0
            },
            "priority": {
              "type": "integer",
              "minimum": 0,
              "maximum": 10000
            },
            "nodePool": {
              "type": "string"
            },
            "chronological": {
              "type": "boolean"
            },
            "environmentVariables": {
              "$ref": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onExecute": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type",
        "execution"
      ],
      "additionalProperties": false
    },
    "PromoteBuild": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "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": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            }
          },
          "required": [
            "targetRepository"
          ],
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "additionalProperties": false
    },
    "PublishBuildInfo": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "environmentVariables": {
              "$ref": "#/$defs/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": "#/$defs/common/RequiresApproval"
            }
          },
          "required": [
            "inputSteps"
          ],
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "additionalProperties": false
    },
    "PushArtifactoryPackage": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "targetRepo",
            "inputSteps"
          ],
          "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": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type",
        "configuration"
      ],
      "additionalProperties": false
    },
    "SignReleaseBundle": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "properties": {
            "affinityGroup": {
              "type": "string"
            },
            "timeoutSeconds": {
              "type": "integer",
              "exclusiveMinimum": 0
            },
            "priority": {
              "type": "integer",
              "minimum": 0,
              "maximum": 10000
            },
            "nodePool": {
              "type": "string"
            },
            "chronological": {
              "type": "boolean"
            },
            "environmentVariables": {
              "$ref": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type"
      ],
      "additionalProperties": false
    },
    "TriggerPipeline": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "required": [
            "pipelineName",
            "stepName"
          ],
          "properties": {
            "affinityGroup": {
              "type": "string"
            },
            "timeoutSeconds": {
              "type": "integer",
              "exclusiveMinimum": 0
            },
            "priority": {
              "type": "integer",
              "minimum": 0,
              "maximum": 10000
            },
            "nodePool": {
              "type": "string"
            },
            "chronological": {
              "type": "boolean"
            },
            "environmentVariables": {
              "$ref": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            },
            "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": "#/$defs/common/RequiresApproval"
            },
            "pipelineName": {
              "type": "string"
            },
            "stepName": {
              "type": "string"
            },
            "branchName": {
              "type": "string"
            },
            "projectKey": {
              "type": "string"
            },
            "waitForRunCompletion": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type"
      ],
      "additionalProperties": false
    },
    "XrayScan": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "configuration": {
          "type": "object",
          "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": "#/$defs/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": "#/$defs/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"
                      ],
                      "type": "object"
                    },
                    "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"
                              ],
                              "type": "object"
                            },
                            "then": {
                              "properties": {
                                "version": {
                                  "type": [
                                    "string",
                                    "number"
                                  ]
                                }
                              }
                            },
                            "else": {
                              "properties": {
                                "versions": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": [
                                      "string",
                                      "number"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    },
                    "else": {
                      "properties": {
                        "custom": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "tag": {
                              "type": "string"
                            },
                            "registry": {
                              "type": "string"
                            },
                            "sourceRepository": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "options": {
                              "type": "string"
                            },
                            "autoPull": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "tag"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false,
                      "type": "object"
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  }
                },
                "then": {
                  "properties": {
                    "type": {
                      "enum": [
                        "host"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "type": "object"
                }
              }
            }
          },
          "additionalProperties": false
        },
        "execution": {
          "type": "object",
          "properties": {
            "onStart": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onSuccess": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onFailure": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onComplete": {
              "$ref": "#/$defs/common/StepExecutionStates"
            },
            "onCancel": {
              "$ref": "#/$defs/common/StepExecutionStates"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "type"
      ],
      "additionalProperties": false
    },
    "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"
      ],
      "properties": {
        "timeoutSeconds": {
          "type": "integer",
          "exclusiveMinimum": 0
        },
        "approvers": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "string"
          }
        },
        "notifications": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "object",
            "required": [
              "integrationName"
            ],
            "properties": {
              "integrationName": {
                "type": "string"
              },
              "recipients": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          }
        }
      },
      "additionalProperties": false
    },
    "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"
        }
      },
      "required": [
        "task"
      ],
      "additionalProperties": false
    },
    "StepExecutionStates": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "string"
          },
          {
            "$ref": "#/$defs/common/Task"
          }
        ]
      }
    }
  }
}
