// Auto-generated from https://raw.githubusercontent.com/harness/harness-schema/main/v0/pipeline.json
// @ts-nocheck

const schema: Record<string, any> = {
  "type": "object",
  "title": "pipeline",
  "required": [
    "pipeline"
  ],
  "properties": {
    "pipeline": {
      "$ref": "#/definitions/pipeline/pipeline"
    }
  },
  "definitions": {
    "pipeline": {
      "pipeline": {
        "type": "object",
        "title": "pipeline",
        "properties": {
          "allowStageExecutions": {
            "type": "boolean"
          },
          "fixedInputsOnRerun": {
            "type": "boolean"
          },
          "delegateSelectors": {
            "oneOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "string",
                "pattern": "(<\\+.+>.*)",
                "minLength": 1
              }
            ]
          },
          "description": {
            "type": "string"
          },
          "flowControl": {
            "$ref": "#/definitions/pipeline/flowControl"
          },
          "identifier": {
            "type": "string",
            "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
          },
          "name": {
            "type": "string",
            "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
          },
          "notificationRules": {
            "type": "array",
            "items": {
              "$ref": "#/definitions/pipeline/NotificationRules"
            }
          },
          "orgIdentifier": {
            "type": "string"
          },
          "projectIdentifier": {
            "type": "string"
          },
          "properties": {
            "type": "object",
            "properties": {
              "ci": {
                "type": "object",
                "properties": {
                  "codebase": {
                    "$ref": "#/definitions/pipeline/codebase"
                  }
                }
              }
            }
          },
          "stages": {
            "type": "array",
            "items": {
              "$ref": "#/definitions/pipeline/stages/stages"
            },
            "maxItems": 2147483647,
            "minItems": 1
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "template": {
            "$ref": "#/definitions/pipeline/steps/custom/TemplateLinkConfig"
          },
          "timeout": {
            "type": "string",
            "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(<\\+input>.*)|(.*<\\+.*>.*)|(^$))$"
          },
          "variables": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                },
                {
                  "$ref": "#/definitions/pipeline/common/StringNGVariable"
                },
                {
                  "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                }
              ]
            }
          }
        },
        "$schema": "http://json-schema.org/draft-07/schema#"
      },
      "flowControl": {
        "type": "object",
        "title": "flowControl",
        "properties": {
          "barriers": {
            "type": "array",
            "items": {
              "$ref": "#/definitions/pipeline/barrierConfig"
            }
          }
        },
        "$schema": "http://json-schema.org/draft-07/schema#"
      },
      "barrierConfig": {
        "type": "object",
        "title": "barrierConfig",
        "required": [
          "identifier",
          "name"
        ],
        "properties": {
          "identifier": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "$schema": "http://json-schema.org/draft-07/schema#"
      },
      "NotificationRules": {
        "title": "NotificationRules",
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "template": {
            "$ref": "#/definitions/pipeline/steps/custom/TemplateLinkConfig"
          },
          "notificationMethod": {
            "$ref": "#/definitions/pipeline/NotificationChannelWrapper"
          },
          "pipelineEvents": {
            "type": "array",
            "items": {
              "$ref": "#/definitions/pipeline/PipelineEvent"
            }
          },
          "description": {
            "desc": "This is the description for NotificationRules"
          }
        },
        "$schema": "http://json-schema.org/draft-07/schema#"
      },
      "steps": {
        "custom": {
          "TemplateLinkConfig": {
            "title": "TemplateLinkConfig",
            "type": "object",
            "required": [
              "templateRef"
            ],
            "properties": {
              "templateInputs": {
                "$ref": "#/definitions/pipeline/common/JsonNode"
              },
              "templateRef": {
                "type": "string"
              },
              "templateVariables": {
                "$ref": "#/definitions/pipeline/common/JsonNode"
              },
              "versionLabel": {
                "type": "string",
                "pattern": "^[0-9a-zA-Z][^\\s/&]{0,63}$"
              },
              "description": {
                "desc": "This is the description for TemplateLinkConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "StageWhenCondition": {
            "title": "StageWhenCondition",
            "type": "object",
            "required": [
              "pipelineStatus"
            ],
            "properties": {
              "condition": {
                "type": "string",
                "pattern": "^(?!<\\+input>.*\\.executionInput\\(\\)(.*)$)"
              },
              "pipelineStatus": {
                "type": "string",
                "enum": [
                  "Success",
                  "Failure",
                  "All"
                ]
              },
              "description": {
                "desc": "This is the description for StageWhenCondition"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "OutputAlias": {
            "title": "OutputAlias",
            "type": "object",
            "required": [
              "key",
              "scope"
            ],
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1
              },
              "scope": {
                "type": "string",
                "enum": [
                  "Pipeline",
                  "Stage",
                  "StepGroup"
                ]
              },
              "description": {
                "desc": "This is the description for OutputAlias used for exporting variables with alias key and scope specified."
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TemplateStepNode": {
            "title": "TemplateStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "template"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TemplateStepNode"
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "template": {
                "$ref": "#/definitions/pipeline/steps/custom/TemplateLinkConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "QueueStepNode": {
            "title": "QueueStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for QueueStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Queue"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Queue"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/QueueStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "QueueStepInfo": {
            "title": "QueueStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "key",
                  "scope"
                ],
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "scope": {
                    "type": "string",
                    "enum": [
                      "Pipeline",
                      "Stage"
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "key",
              "scope"
            ],
            "properties": {
              "key": {
                "type": "string"
              },
              "scope": {
                "type": "string",
                "enum": [
                  "Pipeline",
                  "Stage"
                ]
              },
              "description": {
                "desc": "This is the description for QueueStepInfo"
              }
            }
          },
          "ShellScriptStepNode": {
            "title": "ShellScriptStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ShellScriptStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "$ref": "#/definitions/pipeline/common/Timeout"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ShellScript"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ShellScript"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/ShellScriptStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ShellScriptStepInfo": {
            "title": "ShellScriptStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "shell",
                  "source"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "environmentVariables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  },
                  "executionTarget": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/custom/ExecutionTarget"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "includeInfraSelectors": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "onDelegate": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "outputVariables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  },
                  "shell": {
                    "type": "string",
                    "enum": [
                      "Bash",
                      "PowerShell"
                    ]
                  },
                  "source": {
                    "$ref": "#/definitions/pipeline/common/ShellScriptSourceWrapper"
                  },
                  "outputAlias": {
                    "$ref": "#/definitions/pipeline/steps/custom/OutputAlias"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "shell",
              "source"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "environmentVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "executionTarget": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ExecutionTarget"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "metadata": {
                "type": "string"
              },
              "onDelegate": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "outputVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "shell": {
                "type": "string",
                "enum": [
                  "Bash",
                  "PowerShell"
                ]
              },
              "source": {
                "$ref": "#/definitions/pipeline/common/ShellScriptSourceWrapper"
              },
              "outputAlias": {
                "$ref": "#/definitions/pipeline/steps/custom/OutputAlias"
              },
              "description": {
                "desc": "This is the description for ShellScriptStepInfo"
              }
            }
          },
          "ExecutionTarget": {
            "title": "ExecutionTarget",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "host": {
                "type": "string"
              },
              "workingDirectory": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ExecutionTarget"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ContainerStepNode": {
            "title": "ContainerStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ContainerStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Container"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Container"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/ContainerStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ContainerStepInfo": {
            "title": "ContainerStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "command",
                  "infrastructure"
                ],
                "properties": {
                  "command": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "entrypoint": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "infrastructure": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/custom/ContainerK8sInfra"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/custom/ContainerECSDirectInfra"
                      }
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "shell": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Sh",
                          "Bash",
                          "Powershell",
                          "Pwsh",
                          "Python"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "command",
              "infrastructure"
            ],
            "properties": {
              "command": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "entrypoint": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "infrastructure": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ContainerK8sInfra"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ContainerECSDirectInfra"
                  }
                ]
              },
              "metadata": {
                "type": "string"
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "shell": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Sh",
                      "Bash",
                      "Powershell",
                      "Pwsh",
                      "Python"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for ContainerStepInfo"
              }
            }
          },
          "ContainerK8sInfra": {
            "title": "ContainerK8sInfra",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/ContainerStepInfra"
              },
              {
                "type": "object",
                "required": [
                  "spec",
                  "type"
                ],
                "properties": {
                  "spec": {
                    "$ref": "#/definitions/pipeline/steps/custom/ContainerInfraYamlSpec"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "KubernetesDirect",
                      "VM"
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ContainerK8sInfra"
              }
            }
          },
          "ContainerStepInfra": {
            "title": "ContainerStepInfra",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "KubernetesDirect",
                  "VM",
                  "ECSDirect"
                ]
              },
              "description": {
                "desc": "This is the description for ContainerStepInfra"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ContainerInfraYamlSpec": {
            "title": "ContainerInfraYamlSpec",
            "type": "object",
            "required": [
              "connectorRef"
            ],
            "properties": {
              "annotations": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "automountServiceAccountToken": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "containerSecurityContext": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/SecurityContext"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "initTimeout": {
                "type": "string"
              },
              "labels": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "namespace": {
                "type": "string",
                "minLength": 1,
                "maxLength": 2147483647
              },
              "nodeSelector": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "os": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Linux",
                      "MacOS",
                      "Windows"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "priorityClassName": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "serviceAccountName": {
                "type": "string"
              },
              "tolerations": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/custom/Toleration"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "volumes": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/custom/ContainerVolume"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for ContainerInfraYamlSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "SecurityContext": {
            "title": "SecurityContext",
            "type": "object",
            "properties": {
              "allowPrivilegeEscalation": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "capabilities": {
                "$ref": "#/definitions/pipeline/steps/custom/Capabilities"
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "procMount": {
                "type": "string"
              },
              "readOnlyRootFilesystem": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "runAsGroup": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "runAsNonRoot": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for SecurityContext"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "Capabilities": {
            "title": "Capabilities",
            "type": "object",
            "properties": {
              "add": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "drop": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for Capabilities"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "Toleration": {
            "title": "Toleration",
            "type": "object",
            "properties": {
              "effect": {
                "type": "string"
              },
              "key": {
                "type": "string"
              },
              "operator": {
                "type": "string"
              },
              "tolerationSeconds": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for Toleration"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ContainerVolume": {
            "title": "ContainerVolume",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "EmptyDir",
                  "PersistentVolumeClaim",
                  "HostPath",
                  "ConfigMap",
                  "Secret"
                ]
              },
              "description": {
                "desc": "This is the description for ContainerVolume"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ContainerECSDirectInfra": {
            "title": "ContainerECSDirectInfra",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/ContainerStepInfra"
              },
              {
                "type": "object",
                "required": [
                  "spec",
                  "type"
                ],
                "properties": {
                  "spec": {
                    "$ref": "#/definitions/pipeline/steps/custom/ECSDirectInfraYamlSpec"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "ECSDirect"
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ContainerECSDirectInfra"
              }
            }
          },
          "ECSDirectInfraYamlSpec": {
            "title": "ECSDirectInfraYamlSpec",
            "type": "object",
            "required": [
              "connectorRef"
            ],
            "properties": {
              "connectorRef": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "harnessImageConnectorRef": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "cluster": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "region": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "subnets": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "securityGroups": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "taskRoleArn": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "executionRoleArn": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "initTimeout": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "enableExecuteCommand": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "logGroupName": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "volumes": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/common/CIVolume"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "containerSecurityContext": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/SecurityContext"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for ECSDirectInfraYamlSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "HttpStepNode": {
            "title": "HttpStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for HttpStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "$ref": "#/definitions/pipeline/common/Timeout"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Http"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Http"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/HttpStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "HttpStepInfo": {
            "title": "HttpStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "method",
                  "url"
                ],
                "properties": {
                  "assertion": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "headers": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/custom/HttpHeaderConfig"
                    }
                  },
                  "method": {
                    "type": "string",
                    "metadata": {
                      "inputProperties": {
                        "type": "string",
                        "internalType": "http_method"
                      }
                    }
                  },
                  "outputVariables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  },
                  "requestBody": {
                    "type": "string",
                    "metadata": {
                      "inputProperties": {
                        "type": "string",
                        "internalType": "text_area"
                      }
                    }
                  },
                  "url": {
                    "type": "string",
                    "metadata": {
                      "inputProperties": {
                        "type": "string",
                        "internalType": "url"
                      }
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "method",
              "url"
            ],
            "properties": {
              "assertion": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "headers": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/custom/HttpHeaderConfig"
                }
              },
              "method": {
                "type": "string"
              },
              "outputVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "requestBody": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for HttpStepInfo"
              }
            }
          },
          "HttpHeaderConfig": {
            "title": "HttpHeaderConfig",
            "type": "object",
            "properties": {
              "key": {
                "type": "string"
              },
              "value": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for HttpHeaderConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "EmailStepNode": {
            "title": "EmailStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for EmailStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Email"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Email"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/EmailStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "EmailStepInfo": {
            "title": "EmailStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "subject"
                ],
                "anyOf": [
                  {
                    "required": [
                      "to"
                    ]
                  },
                  {
                    "required": [
                      "toUserGroups"
                    ]
                  }
                ],
                "properties": {
                  "body": {
                    "type": "string"
                  },
                  "cc": {
                    "type": "string"
                  },
                  "toUserGroups": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "maxItems": 256
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ccUserGroups": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "maxItems": 256
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": null
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "subject": {
                    "type": "string"
                  },
                  "to": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "subject"
            ],
            "anyOf": [
              {
                "required": [
                  "to"
                ]
              },
              {
                "required": [
                  "toUserGroups"
                ]
              }
            ],
            "properties": {
              "body": {
                "type": "string"
              },
              "cc": {
                "type": "string"
              },
              "toUserGroups": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "maxItems": 256
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ccUserGroups": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "maxItems": 256
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "subject": {
                "type": "string"
              },
              "to": {
                "type": "string"
              },
              "inputVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "description": {
                "desc": "This is the description for EmailStepInfo"
              }
            }
          },
          "WaitStepNode": {
            "title": "WaitStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for WaitStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "type": {
                "type": "string",
                "enum": [
                  "Wait"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Wait"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/WaitStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "WaitStepInfo": {
            "title": "WaitStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "duration"
                ],
                "properties": {
                  "duration": {
                    "type": "string",
                    "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(<\\+input>.*)|(.*<\\+.*>.*)|(^$))$"
                  },
                  "metadata": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "duration"
            ],
            "properties": {
              "duration": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(<\\+input>.*)|(.*<\\+.*>.*)|(^$))$"
              },
              "metadata": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for WaitStepInfo"
              }
            }
          },
          "HarnessApprovalStepNode": {
            "title": "HarnessApprovalStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for HarnessApprovalStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "HarnessApproval"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HarnessApproval"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/HarnessApprovalStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "HarnessApprovalStepInfo": {
            "title": "HarnessApprovalStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "approvers",
                  "includePipelineExecutionHistory"
                ],
                "properties": {
                  "callbackId": {
                    "type": "string",
                    "pattern": "^[a-zA-Z0-9_-]*(<\\+[^ ]+>)?[a-zA-Z0-9_.()-]*$"
                  },
                  "approvalMessage": {
                    "type": "string",
                    "minLength": 1
                  },
                  "approverInputs": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/custom/ApproverInputInfo"
                    }
                  },
                  "approvers": {
                    "$ref": "#/definitions/pipeline/steps/custom/Approvers"
                  },
                  "includePipelineExecutionHistory": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "autoApproval": {
                    "$ref": "#/definitions/pipeline/steps/custom/AutoApprovalParams"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "approvers",
              "includePipelineExecutionHistory"
            ],
            "properties": {
              "callbackId": {
                "type": "string",
                "pattern": "^[a-zA-Z0-9_-]*(<\\+[^ ]+>)?[a-zA-Z0-9_.()-]*$"
              },
              "approvalMessage": {
                "type": "string",
                "minLength": 1
              },
              "approverInputs": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/custom/ApproverInputInfo"
                }
              },
              "approvers": {
                "$ref": "#/definitions/pipeline/steps/custom/Approvers"
              },
              "includePipelineExecutionHistory": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "autoApproval": {
                "$ref": "#/definitions/pipeline/steps/custom/AutoApprovalParams"
              },
              "description": {
                "desc": "This is the description for HarnessApprovalStepInfo"
              }
            }
          },
          "ApproverInputInfo": {
            "title": "ApproverInputInfo",
            "type": "object",
            "properties": {
              "defaultValue": {
                "type": "string"
              },
              "name": {
                "type": "string",
                "minLength": 1
              },
              "required": {
                "type": "boolean"
              },
              "allowedValues": {
                "type": "string"
              },
              "selectOneFrom": {
                "type": "string"
              },
              "selectManyFrom": {
                "type": "string"
              },
              "regex": {
                "type": "string"
              },
              "description": {
                "type": "string",
                "desc": "This is the description for ApproverInputInfo"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "oneOf": [
              {
                "required": [
                  "regex"
                ],
                "not": {
                  "required": [
                    "allowedValues",
                    "selectOneFrom",
                    "selectManyFrom"
                  ]
                }
              },
              {
                "required": [
                  "allowedValues"
                ],
                "not": {
                  "required": [
                    "regex",
                    "selectOneFrom",
                    "selectManyFrom"
                  ]
                }
              },
              {
                "required": [
                  "selectOneFrom"
                ],
                "not": {
                  "required": [
                    "allowedValues",
                    "regex",
                    "selectManyFrom"
                  ]
                }
              },
              {
                "required": [
                  "selectManyFrom"
                ],
                "not": {
                  "required": [
                    "allowedValues",
                    "regex",
                    "selectOneFrom"
                  ]
                }
              },
              {
                "not": {
                  "anyOf": [
                    {
                      "required": [
                        "regex"
                      ]
                    },
                    {
                      "required": [
                        "allowedValues"
                      ]
                    },
                    {
                      "required": [
                        "selectOneFrom"
                      ]
                    },
                    {
                      "required": [
                        "selectManyFrom"
                      ]
                    }
                  ]
                }
              }
            ]
          },
          "Approvers": {
            "title": "Approvers",
            "type": "object",
            "required": [
              "disallowPipelineExecutor",
              "minimumCount"
            ],
            "properties": {
              "disallowPipelineExecutor": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "minimumCount": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "userGroups": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "maxItems": 2147483647
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "serviceAccounts": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "maxItems": 2147483647
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "disallowedUserEmails": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "maxItems": 2147483647
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for Approvers"
              }
            },
            "anyOf": [
              {
                "properties": {
                  "userGroups": {
                    "oneOf": [
                      {
                        "type": "array",
                        "minItems": 1
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              },
              {
                "properties": {
                  "serviceAccounts": {
                    "oneOf": [
                      {
                        "type": "array",
                        "minItems": 1
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "allOf": [
              {
                "not": {
                  "properties": {
                    "userGroups": {
                      "type": "array",
                      "maxItems": 0
                    },
                    "serviceAccounts": {
                      "type": "array",
                      "maxItems": 0
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "AutoApprovalParams": {
            "title": "AutoApprovalParams",
            "type": "object",
            "required": [
              "action",
              "scheduledDeadline"
            ],
            "properties": {
              "action": {
                "type": "string",
                "enum": [
                  "APPROVE"
                ]
              },
              "comments": {
                "type": "string"
              },
              "scheduledDeadline": {
                "$ref": "#/definitions/pipeline/steps/custom/ScheduledDeadline"
              },
              "description": {
                "desc": "This is the description for AutoApproval params used in Harness Approval"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ScheduledDeadline": {
            "title": "ScheduledDeadline",
            "type": "object",
            "required": [
              "time",
              "timeZone"
            ],
            "properties": {
              "time": {
                "type": "string"
              },
              "timeZone": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ScheduledDeadline used in Harness Approval's AutoApproval"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CustomApprovalStepNode": {
            "title": "CustomApprovalStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for CustomApprovalStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CustomApproval"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CustomApproval"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/CustomApprovalStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "CustomApprovalStepInfo": {
            "title": "CustomApprovalStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "approvalCriteria",
                  "retryInterval",
                  "scriptTimeout",
                  "shell",
                  "source"
                ],
                "properties": {
                  "approvalCriteria": {
                    "$ref": "#/definitions/pipeline/steps/custom/CriteriaSpecWrapper"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "environmentVariables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  },
                  "outputVariables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  },
                  "rejectionCriteria": {
                    "$ref": "#/definitions/pipeline/steps/custom/CriteriaSpecWrapper"
                  },
                  "retryInterval": {
                    "type": "string",
                    "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(<\\+input>.*)|(.*<\\+.*>.*)|(^$))$"
                  },
                  "scriptTimeout": {
                    "type": "string",
                    "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(<\\+input>.*)|(.*<\\+.*>.*)|(^$))$"
                  },
                  "shell": {
                    "type": "string",
                    "enum": [
                      "Bash",
                      "PowerShell"
                    ]
                  },
                  "source": {
                    "$ref": "#/definitions/pipeline/common/ShellScriptSourceWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "approvalCriteria",
              "retryInterval",
              "scriptTimeout",
              "shell",
              "source"
            ],
            "properties": {
              "approvalCriteria": {
                "$ref": "#/definitions/pipeline/steps/custom/CriteriaSpecWrapper"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "environmentVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "outputVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "rejectionCriteria": {
                "$ref": "#/definitions/pipeline/steps/custom/CriteriaSpecWrapper"
              },
              "retryInterval": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(<\\+input>.*)|(.*<\\+.*>.*)|(^$))$"
              },
              "scriptTimeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(<\\+input>.*)|(.*<\\+.*>.*)|(^$))$"
              },
              "shell": {
                "type": "string",
                "enum": [
                  "Bash",
                  "PowerShell"
                ]
              },
              "source": {
                "$ref": "#/definitions/pipeline/common/ShellScriptSourceWrapper"
              },
              "description": {
                "desc": "This is the description for CustomApprovalStepInfo"
              }
            }
          },
          "CriteriaSpecWrapper": {
            "title": "CriteriaSpecWrapper",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Jexl",
                  "KeyValues"
                ]
              },
              "description": {
                "desc": "This is the description for CriteriaSpecWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Jexl"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/JexlCriteriaSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "KeyValues"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/KeyValuesCriteriaSpec"
                    }
                  }
                }
              }
            ]
          },
          "JexlCriteriaSpec": {
            "title": "JexlCriteriaSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/CriteriaSpec"
              },
              {
                "type": "object",
                "required": [
                  "expression"
                ],
                "properties": {
                  "expression": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for JexlCriteriaSpec"
              }
            }
          },
          "CriteriaSpec": {
            "title": "CriteriaSpec",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CriteriaSpec"
              }
            }
          },
          "KeyValuesCriteriaSpec": {
            "title": "KeyValuesCriteriaSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/CriteriaSpec"
              },
              {
                "type": "object",
                "required": [
                  "conditions"
                ],
                "properties": {
                  "conditions": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/custom/Condition"
                    }
                  },
                  "matchAnyCondition": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for KeyValuesCriteriaSpec"
              }
            }
          },
          "Condition": {
            "title": "Condition",
            "type": "object",
            "required": [
              "key",
              "operator",
              "value"
            ],
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1
              },
              "operator": {
                "type": "string",
                "enum": [
                  "equals",
                  "not equals",
                  "in",
                  "not in"
                ]
              },
              "value": {
                "type": "string",
                "minLength": 1
              },
              "description": {
                "desc": "This is the description for Condition"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "JiraApprovalStepNode": {
            "title": "JiraApprovalStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for JiraApprovalStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "JiraApproval"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "JiraApproval"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/JiraApprovalStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "JiraApprovalStepInfo": {
            "title": "JiraApprovalStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "approvalCriteria",
                  "connectorRef",
                  "issueKey"
                ],
                "properties": {
                  "approvalCriteria": {
                    "$ref": "#/definitions/pipeline/steps/custom/CriteriaSpecWrapper"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "issueKey": {
                    "type": "string"
                  },
                  "issueType": {
                    "type": "string"
                  },
                  "projectKey": {
                    "type": "string"
                  },
                  "rejectionCriteria": {
                    "$ref": "#/definitions/pipeline/steps/custom/CriteriaSpecWrapper"
                  },
                  "retryInterval": {
                    "type": "string",
                    "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(<\\+input>.*)|(.*<\\+.*>.*)|(^$))$"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "approvalCriteria",
              "connectorRef",
              "issueKey"
            ],
            "properties": {
              "approvalCriteria": {
                "$ref": "#/definitions/pipeline/steps/custom/CriteriaSpecWrapper"
              },
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "issueKey": {
                "type": "string"
              },
              "issueType": {
                "type": "string"
              },
              "projectKey": {
                "type": "string"
              },
              "rejectionCriteria": {
                "$ref": "#/definitions/pipeline/steps/custom/CriteriaSpecWrapper"
              },
              "description": {
                "desc": "This is the description for JiraApprovalStepInfo"
              }
            }
          },
          "ServiceNowApprovalStepNode": {
            "title": "ServiceNowApprovalStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ServiceNowApprovalStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ServiceNowApproval"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ServiceNowApproval"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/ServiceNowApprovalStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ServiceNowApprovalStepInfo": {
            "title": "ServiceNowApprovalStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "approvalCriteria",
                  "connectorRef",
                  "ticketNumber",
                  "ticketType"
                ],
                "properties": {
                  "approvalCriteria": {
                    "$ref": "#/definitions/pipeline/steps/custom/CriteriaSpecWrapper"
                  },
                  "changeWindow": {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowChangeWindowSpec"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "rejectionCriteria": {
                    "$ref": "#/definitions/pipeline/steps/custom/CriteriaSpecWrapper"
                  },
                  "ticketNumber": {
                    "type": "string"
                  },
                  "retryInterval": {
                    "type": "string",
                    "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(<\\+input>.*)|(.*<\\+.*>.*)|(^$))$"
                  },
                  "ticketType": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "approvalCriteria",
              "connectorRef",
              "ticketNumber",
              "ticketType"
            ],
            "properties": {
              "approvalCriteria": {
                "$ref": "#/definitions/pipeline/steps/custom/CriteriaSpecWrapper"
              },
              "changeWindow": {
                "$ref": "#/definitions/pipeline/steps/custom/ServiceNowChangeWindowSpec"
              },
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "rejectionCriteria": {
                "$ref": "#/definitions/pipeline/steps/custom/CriteriaSpecWrapper"
              },
              "ticketNumber": {
                "type": "string"
              },
              "ticketType": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ServiceNowApprovalStepInfo"
              }
            }
          },
          "ServiceNowChangeWindowSpec": {
            "title": "ServiceNowChangeWindowSpec",
            "type": "object",
            "required": [
              "endField",
              "startField"
            ],
            "properties": {
              "endField": {
                "type": "string"
              },
              "startField": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ServiceNowChangeWindowSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "JiraCreateStepNode": {
            "title": "JiraCreateStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for JiraCreateStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "JiraCreate"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "JiraCreate"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/JiraCreateStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "JiraCreateStepInfo": {
            "title": "JiraCreateStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "issueType",
                  "projectKey"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "fields": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/custom/JiraField"
                    }
                  },
                  "issueType": {
                    "type": "string"
                  },
                  "projectKey": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "issueType",
              "projectKey"
            ],
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "fields": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/custom/JiraField"
                }
              },
              "issueType": {
                "type": "string"
              },
              "projectKey": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for JiraCreateStepInfo"
              }
            }
          },
          "JiraField": {
            "title": "JiraField",
            "type": "object",
            "required": [
              "value"
            ],
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1
              },
              "value": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for JiraField"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "JiraUpdateStepNode": {
            "title": "JiraUpdateStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for JiraUpdateStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "JiraUpdate"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "JiraUpdate"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/JiraUpdateStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "JiraUpdateStepInfo": {
            "title": "JiraUpdateStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "issueKey"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "fields": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/custom/JiraField"
                    }
                  },
                  "issueKey": {
                    "type": "string"
                  },
                  "issueType": {
                    "type": "string"
                  },
                  "projectKey": {
                    "type": "string"
                  },
                  "transitionTo": {
                    "$ref": "#/definitions/pipeline/steps/custom/TransitionTo"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "issueKey"
            ],
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "fields": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/custom/JiraField"
                }
              },
              "issueKey": {
                "type": "string"
              },
              "transitionTo": {
                "$ref": "#/definitions/pipeline/steps/custom/TransitionTo"
              },
              "description": {
                "desc": "This is the description for JiraUpdateStepInfo"
              }
            }
          },
          "TransitionTo": {
            "title": "TransitionTo",
            "type": "object",
            "required": [
              "status"
            ],
            "properties": {
              "status": {
                "type": "string"
              },
              "transitionName": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TransitionTo"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "BarrierStepNode": {
            "title": "BarrierStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for BarrierStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Barrier"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Barrier"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/BarrierStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "BarrierStepInfo": {
            "title": "BarrierStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "barrierRef"
                ],
                "properties": {
                  "barrierRef": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "barrierRef"
            ],
            "properties": {
              "barrierRef": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for BarrierStepInfo"
              }
            }
          },
          "PolicyStepNode": {
            "title": "PolicyStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for PolicyStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Policy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Policy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/PolicyStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "PolicyStepInfo": {
            "title": "PolicyStepInfo",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Custom"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "policySpec": {
                      "$ref": "#/definitions/pipeline/steps/custom/CustomPolicyStepSpec"
                    }
                  }
                },
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "policySets"
                ],
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "policySets": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "type": {
                    "type": "string"
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Custom"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "policySpec": {
                      "$ref": "#/definitions/pipeline/steps/custom/CustomPolicyStepSpec"
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "policySets"
            ],
            "properties": {
              "metadata": {
                "type": "string"
              },
              "policySets": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for PolicyStepInfo"
              }
            }
          },
          "CustomPolicyStepSpec": {
            "title": "CustomPolicyStepSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/PolicySpec"
              },
              {
                "type": "object",
                "required": [
                  "payload"
                ],
                "properties": {
                  "payload": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CustomPolicyStepSpec"
              }
            }
          },
          "PolicySpec": {
            "title": "PolicySpec",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for PolicySpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ServiceNowCreateStepNode": {
            "title": "ServiceNowCreateStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ServiceNowCreateStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ServiceNowCreate"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ServiceNowCreate"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/ServiceNowCreateStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ServiceNowCreateStepInfo": {
            "title": "ServiceNowCreateStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "ticketType"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "fields": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/custom/ServiceNowField"
                    }
                  },
                  "templateName": {
                    "type": "string"
                  },
                  "ticketType": {
                    "type": "string"
                  },
                  "useServiceNowTemplate": {
                    "type": "boolean"
                  },
                  "createType": {
                    "type": "string",
                    "enum": [
                      "Normal",
                      "Form",
                      "Standard"
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "ticketType"
            ],
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "fields": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/custom/ServiceNowField"
                }
              },
              "templateName": {
                "type": "string"
              },
              "ticketType": {
                "type": "string"
              },
              "useServiceNowTemplate": {
                "type": "boolean"
              },
              "description": {
                "desc": "This is the description for ServiceNowCreateStepInfo"
              },
              "createType": {
                "type": "string",
                "enum": [
                  "Normal",
                  "Form",
                  "Standard"
                ]
              }
            }
          },
          "ServiceNowField": {
            "title": "ServiceNowField",
            "type": "object",
            "required": [
              "name",
              "value"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "value": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ServiceNowField"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ServiceNowUpdateStepNode": {
            "title": "ServiceNowUpdateStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ServiceNowUpdateStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ServiceNowUpdate"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ServiceNowUpdate"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/ServiceNowUpdateStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ServiceNowUpdateStepInfo": {
            "title": "ServiceNowUpdateStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "ticketType",
                  "useServiceNowTemplate"
                ],
                "oneOf": [
                  {
                    "required": [
                      "updateMultiple"
                    ]
                  },
                  {
                    "required": [
                      "ticketNumber"
                    ]
                  }
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "fields": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/custom/ServiceNowField"
                    }
                  },
                  "templateName": {
                    "type": "string"
                  },
                  "ticketNumber": {
                    "type": "string"
                  },
                  "ticketType": {
                    "type": "string"
                  },
                  "useServiceNowTemplate": {
                    "type": "boolean"
                  },
                  "updateMultiple": {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowUpdateMultipleNode"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "ticketType",
              "useServiceNowTemplate"
            ],
            "oneOf": [
              {
                "required": [
                  "updateMultiple"
                ]
              },
              {
                "required": [
                  "ticketNumber"
                ]
              }
            ],
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "fields": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/custom/ServiceNowField"
                }
              },
              "templateName": {
                "type": "string"
              },
              "ticketNumber": {
                "type": "string"
              },
              "ticketType": {
                "type": "string"
              },
              "useServiceNowTemplate": {
                "type": "boolean"
              },
              "updateMultiple": {
                "$ref": "#/definitions/pipeline/steps/custom/ServiceNowUpdateMultipleNode"
              },
              "description": {
                "desc": "This is the description for ServiceNowUpdateStepInfo"
              }
            }
          },
          "ServiceNowUpdateMultipleNode": {
            "title": "ServiceNowUpdateMultipleNode",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ServiceNowUpdateMultipleNode"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CHANGE_TASK"
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CHANGE_TASK"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/ServiceNowUpdateMultipleChangeTaskSpec"
                    }
                  }
                }
              }
            ]
          },
          "ServiceNowUpdateMultipleChangeTaskSpec": {
            "title": "ServiceNowUpdateMultipleChangeTaskSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "changeRequestNumber"
                ],
                "properties": {
                  "changeRequestNumber": {
                    "type": "string"
                  },
                  "changeTaskType": {
                    "type": "string"
                  }
                }
              }
            ]
          },
          "ServiceNowImportSetStepNode": {
            "title": "ServiceNowImportSetStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ServiceNowImportSetStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ServiceNowImportSet"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ServiceNowImportSet"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/ServiceNowImportSetStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ServiceNowImportSetStepInfo": {
            "title": "ServiceNowImportSetStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "importData",
                  "stagingTableName"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "importData": {
                    "$ref": "#/definitions/pipeline/steps/custom/ImportDataSpecWrapper"
                  },
                  "stagingTableName": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "importData",
              "stagingTableName"
            ],
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "importData": {
                "$ref": "#/definitions/pipeline/steps/custom/ImportDataSpecWrapper"
              },
              "stagingTableName": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ServiceNowImportSetStepInfo"
              }
            }
          },
          "ImportDataSpecWrapper": {
            "title": "ImportDataSpecWrapper",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Json",
                  "KeyValues"
                ]
              },
              "description": {
                "desc": "This is the description for ImportDataSpecWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Json"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/JsonImportDataSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "KeyValues"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/KeyValuesImportDataSpec"
                    }
                  }
                }
              }
            ]
          },
          "JsonImportDataSpec": {
            "title": "JsonImportDataSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/ImportDataSpec"
              },
              {
                "type": "object",
                "required": [
                  "jsonBody"
                ],
                "properties": {
                  "jsonBody": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for JsonImportDataSpec"
              }
            }
          },
          "ImportDataSpec": {
            "title": "ImportDataSpec",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ImportDataSpec"
              }
            }
          },
          "KeyValuesImportDataSpec": {
            "title": "KeyValuesImportDataSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/ImportDataSpec"
              },
              {
                "type": "object",
                "required": [
                  "fields"
                ],
                "properties": {
                  "fields": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/custom/ServiceNowField"
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for KeyValuesImportDataSpec"
              }
            }
          },
          "EventListenerStepNode": {
            "title": "EventListenerStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type",
              "spec"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for EventListenerStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "EventListener"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EventListener"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/EventListenerStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "EventListenerStepInfo": {
            "title": "EventListenerStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "webhookIdentifier",
                  "successCriteria"
                ],
                "properties": {
                  "webhookIdentifier": {
                    "type": "string"
                  },
                  "successCriteria": {
                    "type": "string"
                  },
                  "inputVariables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  },
                  "outputVariables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  },
                  "failureCriteria": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "successCriteria",
              "webhookIdentifier"
            ],
            "properties": {
              "webhookIdentifier": {
                "type": "string"
              },
              "successCriteria": {
                "type": "string"
              },
              "inputVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "outputVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "failureCriteria": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for EventListenerStepInfo"
              }
            }
          },
          "HarnessStore": {
            "title": "HarnessStore",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/StoreSpec"
              },
              {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for HarnessStore"
              }
            }
          },
          "StoreSpec": {
            "title": "StoreSpec",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for StoreSpec"
              }
            }
          },
          "CdSscaOrchestrationStepNode": {
            "title": "CdSscaOrchestrationStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for CdSscaOrchestrationStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CdSscaOrchestration"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CdSscaOrchestration"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/CdSscaOrchestrationStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "CdSscaOrchestrationStepInfo": {
            "title": "CdSscaOrchestrationStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "infrastructure",
                  "source",
                  "tool"
                ],
                "properties": {
                  "attestation": {
                    "$ref": "#/definitions/pipeline/steps/custom/Attestation"
                  },
                  "infrastructure": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/custom/ContainerK8sInfra"
                      }
                    ]
                  },
                  "source": {
                    "$ref": "#/definitions/pipeline/steps/custom/SbomSource"
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/custom/SbomOrchestrationTool"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "infrastructure",
              "source",
              "tool"
            ],
            "properties": {
              "attestation": {
                "$ref": "#/definitions/pipeline/steps/custom/Attestation"
              },
              "infrastructure": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ContainerK8sInfra"
                  }
                ]
              },
              "source": {
                "$ref": "#/definitions/pipeline/steps/custom/SbomSource"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/custom/SbomOrchestrationTool"
              },
              "description": {
                "desc": "This is the description for CdSscaOrchestrationStepInfo"
              }
            }
          },
          "Attestation": {
            "title": "Attestation",
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "cosign",
                  "keyless",
                  "keybased",
                  "secret-manager"
                ]
              },
              "description": {
                "desc": "This is the description for Attestation"
              },
              "spec": {
                "type": "object"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "cosign"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "type": "object",
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/steps/custom/CosignAttestation"
                        },
                        {
                          "$ref": "#/definitions/pipeline/steps/custom/CosignSecretManagerAttestation"
                        }
                      ]
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "keyless"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "type": "object",
                      "$ref": "#/definitions/pipeline/steps/custom/KeylessAttestation"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "keybased"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "type": "object",
                      "$ref": "#/definitions/pipeline/steps/custom/CosignAttestation"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "secret-manager"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "type": "object",
                      "$ref": "#/definitions/pipeline/steps/custom/CosignSecretManagerAttestation"
                    }
                  }
                }
              }
            ],
            "additionalProperties": false
          },
          "CosignAttestation": {
            "title": "CosignAttestation",
            "type": "object",
            "required": [
              "privateKey",
              "password"
            ],
            "properties": {
              "privateKey": {
                "type": "string"
              },
              "password": {
                "type": "string"
              },
              "description": {
                "type": "string",
                "description": "This is the description for CosignAttestation"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "$ref": "#/definitions/pipeline/steps/custom/AttestationSpec"
          },
          "AttestationSpec": {
            "title": "AttestationSpec",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AttestationSpec"
              }
            }
          },
          "CosignSecretManagerAttestation": {
            "title": "CosignSecretManagerAttestation",
            "type": "object",
            "required": [
              "connector",
              "key"
            ],
            "properties": {
              "connector": {
                "type": "string"
              },
              "key": {
                "type": "string"
              },
              "description": {
                "type": "string",
                "description": "This is the description for Cosign Attestation with Secret Manager"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "$ref": "#/definitions/pipeline/steps/custom/AttestationSpec"
          },
          "KeylessAttestation": {
            "title": "KeylessAttestation",
            "type": "object",
            "properties": {
              "oidcProvider": {
                "type": "string",
                "enum": [
                  "harness",
                  "non-harness"
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false
          },
          "SbomSource": {
            "title": "SbomSource",
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "image",
                  "repository",
                  "docker",
                  "ecr",
                  "gcr",
                  "acr",
                  "gar",
                  "har",
                  "local"
                ]
              },
              "description": {
                "desc": "This is the description for SbomSource"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "image"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/ImageSbomSource"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "repository"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/RepositorySbomSource"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "docker"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/ImageSbomSource"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ecr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/EcrSbomSource"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "gcr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/GcrSbomSource"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "acr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/AcrSbomSource"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "gar"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/GarSbomSource"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "har"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/HarSbomSource"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "local"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/LocalSourceSpec"
                    }
                  }
                }
              }
            ]
          },
          "ImageSbomSource": {
            "title": "ImageSbomSource",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/SbomSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "image"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ImageSbomSource"
              }
            }
          },
          "SbomSourceSpec": {
            "title": "SbomSourceSpec",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for SbomSourceSpec"
              }
            }
          },
          "RepositorySbomSource": {
            "title": "RepositorySbomSource",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/SbomSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "url",
                  "variant_type",
                  "variant"
                ],
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "path": {
                    "type": "string"
                  },
                  "variant_type": {
                    "type": "string",
                    "enum": [
                      "branch",
                      "git_tag",
                      "commit"
                    ]
                  },
                  "variant": {
                    "type": "string"
                  },
                  "cloned_codebase": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for RepositorySbomSource"
              }
            }
          },
          "EcrSbomSource": {
            "title": "EcrSbomSource",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/SbomSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "image"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  },
                  "account": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "Ecr sbom source spec"
              }
            }
          },
          "GcrSbomSource": {
            "title": "GcrSbomSource",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/SbomSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "connector",
                  "host",
                  "project_id",
                  "image"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "host": {
                    "type": "string"
                  },
                  "project_id": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "Gcr sbom source spec"
              }
            }
          },
          "AcrSbomSource": {
            "title": "AcrSbomSource",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/SbomSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "image",
                  "connector"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  },
                  "subscription_id": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "Acr sbom source spec"
              }
            }
          },
          "GarSbomSource": {
            "title": "GarSbomSource",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/SbomSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "connector",
                  "host",
                  "project_id",
                  "image"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "host": {
                    "type": "string"
                  },
                  "project_id": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "Gar sbom source spec"
              }
            }
          },
          "HarSbomSource": {
            "title": "HarSbomSource",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/SbomSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "registry",
                  "image"
                ],
                "properties": {
                  "registry": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "Harness Artifact sbom source spec"
              }
            }
          },
          "LocalSourceSpec": {
            "title": "LocalSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/SbomSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "artifact_name"
                ],
                "properties": {
                  "workspace": {
                    "type": "string"
                  },
                  "artifact_name": {
                    "type": "string"
                  },
                  "version": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for LocalSourceSpec"
              }
            }
          },
          "SbomOrchestrationTool": {
            "title": "SbomOrchestrationTool",
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Syft",
                  "cdxgen"
                ]
              },
              "description": {
                "desc": "This is the description for SbomOrchestrationTool"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Syft"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/SyftSbomOrchestration"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "cdxgen"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/CdxgenSbomOrchestration"
                    }
                  }
                }
              }
            ]
          },
          "SyftSbomOrchestration": {
            "title": "SyftSbomOrchestration",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/SbomOrchestrationSpec"
              },
              {
                "type": "object",
                "properties": {
                  "format": {
                    "type": "string",
                    "enum": [
                      "spdx-json",
                      "cyclonedx-json"
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for SyftSbomOrchestration"
              }
            }
          },
          "SbomOrchestrationSpec": {
            "title": "SbomOrchestrationSpec",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for SbomOrchestrationSpec"
              }
            }
          },
          "CdxgenSbomOrchestration": {
            "title": "CdxgenSbomOrchestration",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/SbomOrchestrationSpec"
              },
              {
                "type": "object",
                "properties": {
                  "format": {
                    "type": "string",
                    "enum": [
                      "cyclonedx-json"
                    ]
                  },
                  "cli_flags": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CdxgenSbomOrchestration"
              }
            }
          },
          "CdSscaEnforcementStepNode": {
            "title": "CdSscaEnforcementStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for CdSscaEnforcementStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CdSscaEnforcement"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CdSscaEnforcement"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/CdSscaEnforcementStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "CdSscaEnforcementStepInfo": {
            "title": "CdSscaEnforcementStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "infrastructure",
                  "policy",
                  "source",
                  "verifyAttestation"
                ],
                "properties": {
                  "infrastructure": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/custom/ContainerK8sInfra"
                      }
                    ]
                  },
                  "policy": {
                    "$ref": "#/definitions/pipeline/steps/custom/EnforcementPolicy"
                  },
                  "source": {
                    "$ref": "#/definitions/pipeline/steps/custom/SbomSource"
                  },
                  "verifyAttestation": {
                    "$ref": "#/definitions/pipeline/steps/custom/VerifyAttestation"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "infrastructure",
              "policy",
              "source"
            ],
            "properties": {
              "infrastructure": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ContainerK8sInfra"
                  }
                ]
              },
              "policy": {
                "$ref": "#/definitions/pipeline/steps/custom/EnforcementPolicy"
              },
              "source": {
                "$ref": "#/definitions/pipeline/steps/custom/SbomSource"
              },
              "verifyAttestation": {
                "$ref": "#/definitions/pipeline/steps/custom/VerifyAttestation"
              },
              "description": {
                "desc": "This is the description for CdSscaEnforcementStepInfo"
              }
            }
          },
          "EnforcementPolicy": {
            "title": "EnforcementPolicy",
            "type": "object",
            "properties": {
              "store": {
                "$ref": "#/definitions/pipeline/steps/custom/PolicyStore"
              },
              "description": {
                "desc": "This is the description for EnforcementPolicy"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "required": [
              "store"
            ]
          },
          "PolicyStore": {
            "title": "PolicyStore",
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Harness"
                ]
              },
              "description": {
                "desc": "This is the description for PolicyStore"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Harness"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/HarnessStore"
                    }
                  }
                }
              }
            ]
          },
          "VerifyAttestation": {
            "title": "VerifyAttestation",
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "cosign",
                  "keyless",
                  "keybased",
                  "secret-manager"
                ]
              },
              "description": {
                "desc": "This is the description for VerifyAttestation"
              },
              "spec": {
                "type": "object"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "cosign"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "type": "object",
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/steps/custom/CosignVerifyAttestation"
                        },
                        {
                          "$ref": "#/definitions/pipeline/steps/custom/CosignSecretManagerVerifyAttestation"
                        }
                      ]
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "keyless"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "type": "object",
                      "$ref": "#/definitions/pipeline/steps/custom/KeylessVerifyAttestation"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "keybased"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "type": "object",
                      "$ref": "#/definitions/pipeline/steps/custom/CosignVerifyAttestation"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "secret-manager"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "type": "object",
                      "$ref": "#/definitions/pipeline/steps/custom/CosignSecretManagerVerifyAttestation"
                    }
                  }
                }
              }
            ],
            "additionalProperties": false
          },
          "CosignVerifyAttestation": {
            "title": "CosignVerifyAttestation",
            "type": "object",
            "required": [
              "publicKey"
            ],
            "properties": {
              "publicKey": {
                "type": "string"
              },
              "description": {
                "type": "string",
                "description": "This is the description for CosignVerifyAttestation"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "$ref": "#/definitions/pipeline/steps/custom/VerifyAttestationSpec"
          },
          "VerifyAttestationSpec": {
            "title": "VerifyAttestationSpec",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for VerifyAttestationSpec"
              }
            }
          },
          "CosignSecretManagerVerifyAttestation": {
            "title": "CosignSecretManagerVerifyAttestation",
            "type": "object",
            "required": [
              "connector",
              "key"
            ],
            "properties": {
              "connector": {
                "type": "string"
              },
              "key": {
                "type": "string"
              },
              "description": {
                "type": "string",
                "description": "This is the description for Cosign Verify Attestation with Secret Manager"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "$ref": "#/definitions/pipeline/steps/custom/VerifyAttestationSpec"
          },
          "KeylessVerifyAttestation": {
            "title": "KeylessVerifyAttestation",
            "type": "object",
            "properties": {
              "oidcProvider": {
                "type": "string",
                "enum": [
                  "harness",
                  "non-harness"
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false
          },
          "SbomDrift": {
            "title": "SbomDrift",
            "type": "object",
            "required": [
              "base"
            ],
            "properties": {
              "base": {
                "type": "string",
                "enum": [
                  "baseline",
                  "last_generated_sbom",
                  "repository"
                ]
              },
              "description": {
                "desc": "This is the description for SbomOrchestrationTool"
              }
            },
            "allOf": [
              {
                "if": {
                  "properties": {
                    "base": {
                      "const": "repository"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/RepositorySbomDrift"
                    }
                  }
                }
              }
            ]
          },
          "RepositorySbomDrift": {
            "title": "RepositorySbomDrift",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/SbomDriftSpec"
              },
              {
                "type": "object",
                "required": [
                  "variant"
                ],
                "properties": {
                  "variant_type": {
                    "type": "string",
                    "enum": [
                      "branch",
                      "git_tag",
                      "commit"
                    ]
                  },
                  "variant": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for RepositorySbomDrift"
              }
            }
          },
          "SbomDriftSpec": {
            "title": "SbomDriftSpec",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for SbomSourceDriftSpec"
              }
            }
          },
          "FmeFlagCreateStepNode": {
            "title": "FmeFlagCreateStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagCreateStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagCreate"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagCreate"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagCreateStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagCreateStepInfo": {
            "title": "FmeFlagCreateStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "trafficType",
                  "name"
                ],
                "properties": {
                  "trafficType": {
                    "description": "FME Traffic Type name (case-sensitive)",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "name": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "description": {
                    "description": "Feature flag description",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "owners": {
                    "description": "Feature flag owners",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "tags": {
                    "description": "Feature flag tags",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^([a-zA-Z0-9-_]+)$",
                          "maxItems": 20
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "defaultTreatment": {
                    "description": "Default treatment for the feature flag",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "baselineTreatment": {
                    "description": "Baseline treatment for the feature flag",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "treatments": {
                    "description": "List of treatments with their descriptions",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "treatment",
                            "description"
                          ],
                          "properties": {
                            "treatment": {
                              "oneOf": [
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                                },
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl-expression-only"
                                }
                              ]
                            },
                            "description": {
                              "oneOf": [
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                                },
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                }
                              ]
                            }
                          }
                        },
                        "minItems": 2
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                },
                "dependencies": {
                  "treatments": {
                    "required": [
                      "defaultTreatment",
                      "baselineTreatment"
                    ]
                  },
                  "defaultTreatment": {
                    "required": [
                      "treatments",
                      "baselineTreatment"
                    ]
                  },
                  "baselineTreatment": {
                    "required": [
                      "treatments",
                      "defaultTreatment"
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeSegmentCreateStepNode": {
            "title": "FmeSegmentCreateStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeSegmentCreateStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeSegmentCreate"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeSegmentCreate"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentCreateStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeSegmentCreateStepInfo": {
            "title": "FmeSegmentCreateStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "trafficType",
                  "name",
                  "segmentType"
                ],
                "properties": {
                  "trafficType": {
                    "description": "FME Traffic Type name (case-sensitive)",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "name": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-segment-common-segment-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "description": {
                    "description": "Segment description",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "owners": {
                    "description": "Segment owners (optional - defaults to admin team if not provided)",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "minItems": 1
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "tags": {
                    "description": "Segment tags",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^([a-zA-Z0-9-_]+)$"
                        },
                        "maxItems": 20
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "segmentType": {
                    "description": "Segment type: Standard (less than 100,000 IDs), Large (more than 100,000 IDs, client-side SDKs only), or RuleBased (dynamic based on targeting rules)",
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Standard",
                          "Large",
                          "RuleBased"
                        ]
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagDeleteStepNode": {
            "title": "FmeFlagDeleteStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagDeleteStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagDelete"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagDelete"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagDeleteStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagDeleteStepInfo": {
            "title": "FmeFlagDeleteStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "deleteAllDefinitions": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ],
                    "description": "When enabled, deletes all feature flag definitions before deleting the flag"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagArchiveStepNode": {
            "title": "FmeFlagArchiveStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagArchiveStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagArchive"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagArchive"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagArchiveStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagArchiveStepInfo": {
            "title": "FmeFlagArchiveStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagLimitExposureStepNode": {
            "title": "FmeFlagLimitExposureStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagLimitExposureStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagLimitExposure"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagLimitExposure"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagLimitExposureStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagLimitExposureStepInfo": {
            "title": "FmeFlagLimitExposureStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "flagName",
                  "environment",
                  "limit"
                ],
                "properties": {
                  "flagName": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "environment": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-environment"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "limit": {
                    "description": "Exposure limit",
                    "oneOf": [
                      {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 100
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagUpdateStepNode": {
            "title": "FmeFlagUpdateStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagUpdateStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagUpdate"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagUpdate"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagUpdateStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagUpdateStepInfo": {
            "title": "FmeFlagUpdateStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "description": {
                    "description": "Feature flag description",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "rolloutStatus": {
                    "description": "Feature flag rollout status",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "owners": {
                    "description": "Feature flag owners",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "tags": {
                    "description": "Feature flag tags",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^([a-zA-Z0-9-_]+)$",
                          "maxItems": 20
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagDefaultAllocationStepNode": {
            "title": "FmeFlagDefaultAllocationStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagDefaultAllocationStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagDefaultAllocation"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagDefaultAllocation"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagDefaultAllocationStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagDefaultAllocationStepInfo": {
            "title": "FmeFlagDefaultAllocationStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "minProperties": 2,
                "required": [
                  "flagName",
                  "environment",
                  "allocation"
                ],
                "properties": {
                  "flagName": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "environment": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-environment"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "allocation": {
                    "description": "Feature flag allocation",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "treatment",
                            "amount"
                          ],
                          "properties": {
                            "treatment": {
                              "oneOf": [
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                                },
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl-expression-only"
                                }
                              ]
                            },
                            "amount": {
                              "oneOf": [
                                {
                                  "type": "integer",
                                  "maximum": 100,
                                  "minimum": 0
                                },
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                }
                              ]
                            }
                          }
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagAddRemoveIndividualTargetsStepNode": {
            "title": "FmeFlagAddRemoveIndividualTargetsStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagAddRemoveIndividualTargetsStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagAddRemoveIndividualTargets"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagAddRemoveIndividualTargets"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagAddRemoveIndividualTargetsInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagAddRemoveIndividualTargetsInfo": {
            "title": "FmeFlagAddRemoveIndividualTargetsInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "minProperties": 2,
                "required": [
                  "flagName",
                  "environment",
                  "treatments"
                ],
                "properties": {
                  "flagName": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "environment": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-environment"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "treatments": {
                    "description": "List of treatments with keys and segments to add or remove",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "treatment"
                          ],
                          "properties": {
                            "treatment": {
                              "oneOf": [
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                                },
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl-expression-only"
                                }
                              ]
                            },
                            "addKeys": {
                              "description": "Individual keys to add",
                              "oneOf": [
                                {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                }
                              ]
                            },
                            "removeKeys": {
                              "description": "Individual keys to remove",
                              "oneOf": [
                                {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                }
                              ]
                            },
                            "addSegments": {
                              "description": "Segments to add",
                              "oneOf": [
                                {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                }
                              ]
                            },
                            "removeSegments": {
                              "description": "Segments to remove",
                              "oneOf": [
                                {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                }
                              ]
                            }
                          }
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagSetIndividualTargetsStepNode": {
            "title": "FmeFlagSetIndividualTargetsStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagSetIndividualTargetsStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagSetIndividualTargets"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagSetIndividualTargets"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetIndividualTargetsInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagSetIndividualTargetsInfo": {
            "title": "FmeFlagSetIndividualTargetsInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "minProperties": 2,
                "required": [
                  "flagName",
                  "environment",
                  "treatments"
                ],
                "properties": {
                  "flagName": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "environment": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-environment"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "treatments": {
                    "description": "List of treatments with keys and segments to set",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "treatment"
                          ],
                          "properties": {
                            "treatment": {
                              "oneOf": [
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                                },
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl-expression-only"
                                }
                              ]
                            },
                            "keys": {
                              "description": "Individual keys to set for this treatment",
                              "oneOf": [
                                {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                }
                              ]
                            },
                            "segments": {
                              "description": "Segments to set for this treatment",
                              "oneOf": [
                                {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                }
                              ]
                            }
                          }
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagKillStepNode": {
            "title": "FmeFlagKillStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagKillStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagKill"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagKill"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagKillStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagKillStepInfo": {
            "title": "FmeFlagKillStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "flagName",
                  "environment"
                ],
                "properties": {
                  "flagName": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "environment": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-environment"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagSetImpressionTrackingStepNode": {
            "title": "FmeFlagSetImpressionTrackingStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagSetImpressionTrackingStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagSetImpressionTracking"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagSetImpressionTracking"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetImpressionTrackingStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagSetImpressionTrackingStepInfo": {
            "title": "FmeFlagSetImpressionTrackingStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "flagName",
                  "environment",
                  "enabled"
                ],
                "properties": {
                  "flagName": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "environment": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-environment"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "enabled": {
                    "description": "Toggle impression tracking on or off for this flag",
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagRestoreStepNode": {
            "title": "FmeFlagRestoreStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagRestoreStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagRestore"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagRestore"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagRestoreStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagRestoreStepInfo": {
            "title": "FmeFlagRestoreStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "flagName",
                  "environment"
                ],
                "properties": {
                  "flagName": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "environment": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-environment"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagReallocateTrafficStepNode": {
            "title": "FmeFlagReallocateTrafficStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagReallocateTrafficStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagReallocateTraffic"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagReallocateTraffic"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagReallocateTrafficStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagReallocateTrafficStepInfo": {
            "title": "FmeFlagReallocateTrafficStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "flagName",
                  "environment"
                ],
                "properties": {
                  "flagName": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "environment": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-environment"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagSetDynamicConfigurationsStepNode": {
            "title": "FmeFlagSetDynamicConfigurationsStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagSetDynamicConfigurationsStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagSetDynamicConfigurations"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagSetDynamicConfigurations"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetDynamicConfigurationsStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagSetDynamicConfigurationsStepInfo": {
            "title": "FmeFlagSetDynamicConfigurationsStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "flagName",
                  "environment",
                  "treatments"
                ],
                "properties": {
                  "flagName": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "environment": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-environment"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "treatments": {
                    "description": "List of treatments with their configurations",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "treatment",
                            "configuration"
                          ],
                          "properties": {
                            "treatment": {
                              "oneOf": [
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                                },
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl-expression-only"
                                }
                              ]
                            },
                            "configuration": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "inputVariables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagSetTreatmentsStepNode": {
            "title": "FmeFlagSetTreatmentsStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagSetTreatmentsStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagSetTreatments"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagSetTreatments"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetTreatmentsStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagSetTreatmentsStepInfo": {
            "title": "FmeFlagSetTreatmentsStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "flagName",
                  "environment",
                  "defaultTreatment",
                  "baselineTreatment",
                  "treatments"
                ],
                "properties": {
                  "flagName": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "environment": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-environment"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "defaultTreatment": {
                    "description": "Default treatment for the configuration",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "baselineTreatment": {
                    "description": "Baseline treatment for the configuration",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "treatments": {
                    "description": "List of treatments with their descriptions",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "treatment",
                            "description"
                          ],
                          "properties": {
                            "treatment": {
                              "oneOf": [
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                                },
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl-expression-only"
                                }
                              ]
                            },
                            "description": {
                              "oneOf": [
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                                },
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                }
                              ]
                            }
                          }
                        },
                        "minItems": 2
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagPatchDefinitionStepNode": {
            "title": "FmeFlagPatchDefinitionStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagPatchDefinitionStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagPatchDefinition"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagPatchDefinition"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagPatchDefinitionStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagPatchDefinitionStepInfo": {
            "title": "FmeFlagPatchDefinitionStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "minProperties": 2,
                "required": [
                  "flagName",
                  "environment",
                  "operations"
                ],
                "properties": {
                  "flagName": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "environment": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-environment"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "operations": {
                    "description": "Patch operations to apply",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "inputVariables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagSetTargetingRulesStepNode": {
            "title": "FmeFlagSetTargetingRulesStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagSetTargetingRulesStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagSetTargetingRules"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagSetTargetingRules"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetTargetingRulesStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagSetTargetingRulesStepInfo": {
            "title": "FmeFlagSetTargetingRulesStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "flagName",
                  "environment",
                  "targetingRules"
                ],
                "properties": {
                  "flagName": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "environment": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-environment"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "targetingRules": {
                    "description": "Array of targeting rules, each containing conditions and allocations",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "condition",
                            "allocation"
                          ],
                          "properties": {
                            "condition": {
                              "description": "Condition object containing rules",
                              "type": "object",
                              "required": [
                                "rules"
                              ],
                              "properties": {
                                "rules": {
                                  "description": "List of condition rules",
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "required": [
                                      "type"
                                    ],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "enum": [
                                          "IN_SEGMENT",
                                          "IN_SPLIT",
                                          "BOOLEAN",
                                          "ON_DATE",
                                          "ON_OR_AFTER_DATE",
                                          "ON_OR_BEFORE_DATE",
                                          "BETWEEN_DATE",
                                          "EQUAL_SET",
                                          "ANY_OF_SET",
                                          "ALL_OF_SET",
                                          "PART_OF_SET",
                                          "EQUAL_NUMBER",
                                          "LESS_THAN_OR_EQUAL_NUMBER",
                                          "GREATER_THAN_OR_EQUAL_NUMBER",
                                          "BETWEEN_NUMBER",
                                          "IN_LIST_STRING",
                                          "STARTS_WITH_STRING",
                                          "ENDS_WITH_STRING",
                                          "CONTAINS_STRING",
                                          "MATCHES_STRING",
                                          "EQUAL_TO_SEMVER",
                                          "GREATER_THAN_OR_EQUAL_TO_SEMVER",
                                          "LESS_THAN_OR_EQUAL_TO_SEMVER",
                                          "BETWEEN_SEMVER",
                                          "IN_LIST_SEMVER"
                                        ]
                                      },
                                      "negate": {
                                        "type": "boolean",
                                        "default": false
                                      },
                                      "feature_flag": {
                                        "description": "Feature flag name (only for IN_SPLIT type)",
                                        "oneOf": [
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                          }
                                        ]
                                      },
                                      "attribute": {
                                        "description": "Attribute name for attribute-based matchers",
                                        "type": "string"
                                      },
                                      "value": {
                                        "description": "Value for the matcher (can be single, multiple, or between)",
                                        "oneOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                                          },
                                          {
                                            "type": "array",
                                            "items": {
                                              "oneOf": [
                                                {
                                                  "type": "number"
                                                },
                                                {
                                                  "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                                                },
                                                {
                                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                                }
                                              ]
                                            }
                                          },
                                          {
                                            "type": "object",
                                            "required": [
                                              "from",
                                              "to"
                                            ],
                                            "properties": {
                                              "from": {
                                                "oneOf": [
                                                  {
                                                    "type": "number"
                                                  },
                                                  {
                                                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                                                  },
                                                  {
                                                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                                  }
                                                ]
                                              },
                                              "to": {
                                                "oneOf": [
                                                  {
                                                    "type": "number"
                                                  },
                                                  {
                                                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                                                  },
                                                  {
                                                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                                  }
                                                ]
                                              }
                                            }
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                          }
                                        ]
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "allocation": {
                              "description": "Traffic allocation across treatments",
                              "oneOf": [
                                {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "required": [
                                      "treatment",
                                      "size"
                                    ],
                                    "properties": {
                                      "treatment": {
                                        "oneOf": [
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                          }
                                        ]
                                      },
                                      "size": {
                                        "oneOf": [
                                          {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 100
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                          }
                                        ]
                                      }
                                    }
                                  }
                                },
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                }
                              ]
                            }
                          }
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeSegmentUpdateStepNode": {
            "title": "FmeSegmentUpdateStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeSegmentUpdateStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeSegmentUpdate"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeSegmentUpdate"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentUpdateInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeSegmentUpdateInfo": {
            "title": "FmeSegmentUpdateInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "description": "Segment name",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-segment-common-segment-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "description": {
                    "description": "Segment description",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "owners": {
                    "description": "Segment owners",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "tags": {
                    "description": "Segment tags",
                    "oneOf": [
                      {
                        "type": "array",
                        "maxItems": 20,
                        "items": {
                          "type": "string",
                          "pattern": "^([a-zA-Z0-9-_]+)$"
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeSegmentDeleteStepNode": {
            "title": "FmeSegmentDeleteStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeSegmentDeleteStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeSegmentDelete"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeSegmentDelete"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentDeleteInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeSegmentDeleteInfo": {
            "title": "FmeSegmentDeleteInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "description": "Segment name to delete",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-segment-common-segment-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeSegmentAddRemoveTargetsStepNode": {
            "title": "FmeSegmentAddRemoveTargetsStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeSegmentAddRemoveTargetsStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeSegmentAddRemoveTargets"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeSegmentAddRemoveTargets"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentAddRemoveTargetsStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeSegmentAddRemoveTargetsStepInfo": {
            "title": "FmeSegmentAddRemoveTargetsStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "segmentName",
                  "environment"
                ],
                "properties": {
                  "segmentName": {
                    "description": "Name of the segment to update",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-segment-common-segment-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "environment": {
                    "description": "ID of the FME environment",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-environment"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "addKeys": {
                    "description": "Keys to add to the segment",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "removeKeys": {
                    "description": "Keys to remove from the segment",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeSegmentSetTargetingRulesStepNode": {
            "title": "FmeSegmentSetTargetingRulesStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeSegmentSetTargetingRulesStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeSegmentSetTargetingRules"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeSegmentSetTargetingRules"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentSetTargetingRulesStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeSegmentSetTargetingRulesStepInfo": {
            "title": "FmeSegmentSetTargetingRulesStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "segmentName",
                  "environment"
                ],
                "properties": {
                  "segmentName": {
                    "description": "Name of the rule-based segment to configure",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-segment-common-segment-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "environment": {
                    "description": "ID of the FME environment",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-environment"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "rules": {
                    "description": "List of targeting rules, each containing conditions",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "condition"
                          ],
                          "properties": {
                            "condition": {
                              "description": "Condition object containing rules",
                              "type": "object",
                              "required": [
                                "rules"
                              ],
                              "properties": {
                                "rules": {
                                  "description": "List of condition rules",
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "required": [
                                      "type"
                                    ],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "enum": [
                                          "IN_SEGMENT",
                                          "IN_SPLIT",
                                          "BOOLEAN",
                                          "ON_DATE",
                                          "ON_OR_AFTER_DATE",
                                          "ON_OR_BEFORE_DATE",
                                          "BETWEEN_DATE",
                                          "EQUAL_SET",
                                          "ANY_OF_SET",
                                          "ALL_OF_SET",
                                          "PART_OF_SET",
                                          "EQUAL_NUMBER",
                                          "LESS_THAN_OR_EQUAL_NUMBER",
                                          "GREATER_THAN_OR_EQUAL_NUMBER",
                                          "BETWEEN_NUMBER",
                                          "IN_LIST_STRING",
                                          "STARTS_WITH_STRING",
                                          "ENDS_WITH_STRING",
                                          "CONTAINS_STRING",
                                          "MATCHES_STRING",
                                          "EQUAL_TO_SEMVER",
                                          "GREATER_THAN_OR_EQUAL_TO_SEMVER",
                                          "LESS_THAN_OR_EQUAL_TO_SEMVER",
                                          "BETWEEN_SEMVER",
                                          "IN_LIST_SEMVER"
                                        ]
                                      },
                                      "negate": {
                                        "type": "boolean",
                                        "default": false
                                      },
                                      "feature_flag": {
                                        "description": "Feature flag name (only for IN_SPLIT type)",
                                        "oneOf": [
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                          }
                                        ]
                                      },
                                      "attribute": {
                                        "description": "Attribute name for attribute-based matchers",
                                        "type": "string"
                                      },
                                      "value": {
                                        "description": "Value for the matcher (can be single, multiple, or between)",
                                        "oneOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                                          },
                                          {
                                            "type": "array",
                                            "items": {
                                              "oneOf": [
                                                {
                                                  "type": "number"
                                                },
                                                {
                                                  "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                                                },
                                                {
                                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                                }
                                              ]
                                            }
                                          },
                                          {
                                            "type": "object",
                                            "required": [
                                              "from",
                                              "to"
                                            ],
                                            "properties": {
                                              "from": {
                                                "oneOf": [
                                                  {
                                                    "type": "number"
                                                  },
                                                  {
                                                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                                                  },
                                                  {
                                                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                                  }
                                                ]
                                              },
                                              "to": {
                                                "oneOf": [
                                                  {
                                                    "type": "number"
                                                  },
                                                  {
                                                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                                                  },
                                                  {
                                                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                                  }
                                                ]
                                              }
                                            }
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                          }
                                        ]
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "excludeKeys": {
                    "description": "List of keys to exclude from the segment",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "excludeSegments": {
                    "description": "List of segments to exclude",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "comment": {
                    "description": "Optional comment for the operation",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "title": {
                    "description": "Optional title for the operation",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagsetCreateStepNode": {
            "title": "FmeFlagsetCreateStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagsetCreateStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagsetCreate"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagsetCreate"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagsetCreateStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagsetCreateStepInfo": {
            "title": "FmeFlagsetCreateStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "description": "Flag set name",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flagset-common-flagset-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "description": {
                    "description": "Flag set description",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagsetDeleteStepNode": {
            "title": "FmeFlagsetDeleteStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagsetDeleteStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagsetDelete"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagsetDelete"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagsetDeleteStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagsetDeleteStepInfo": {
            "title": "FmeFlagsetDeleteStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "description": "Flag set name to delete",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flagset-common-flagset-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagAddRemoveFlagsetsStepNode": {
            "title": "FmeFlagAddRemoveFlagsetsStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagAddRemoveFlagsetsStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagAddRemoveFlagsets"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagAddRemoveFlagsets"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagAddRemoveFlagsetsStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagAddRemoveFlagsetsStepInfo": {
            "title": "FmeFlagAddRemoveFlagsetsStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "flagName",
                  "environment"
                ],
                "properties": {
                  "flagName": {
                    "description": "Feature flag name",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "environment": {
                    "description": "FME Environment Name or ID",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-environment"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "addFlagsets": {
                    "description": "List of flagset names to add to the feature flag",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "removeFlagsets": {
                    "description": "List of flagset names to remove from the feature flag",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FmeFlagDefinitionInstructionsStepNode": {
            "title": "FmeFlagDefinitionInstructionsStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeFlagDefinitionInstructionsStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeFlagDefinitionInstructions"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeFlagDefinitionInstructions"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeFlagDefinitionInstructionsStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeFlagDefinitionInstructionsStepInfo": {
            "title": "FmeFlagDefinitionInstructionsStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "flagName",
                  "environment",
                  "instructions"
                ],
                "properties": {
                  "flagName": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "environment": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-environment"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "defaultDefinition": {
                    "description": "Optional. If the flag definition does not exist in the target environment, create one with these values. Ignored if definition already exists.",
                    "oneOf": [
                      {
                        "type": "object",
                        "required": [
                          "treatments",
                          "defaultTreatment",
                          "baselineTreatment"
                        ],
                        "properties": {
                          "treatments": {
                            "type": "array",
                            "minItems": 2,
                            "items": {
                              "type": "object",
                              "required": [
                                "treatment",
                                "description"
                              ],
                              "properties": {
                                "treatment": {
                                  "oneOf": [
                                    {
                                      "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                                    },
                                    {
                                      "$ref": "#/definitions/pipeline/steps/common/common-jexl-expression-only"
                                    }
                                  ]
                                },
                                "description": {
                                  "oneOf": [
                                    {
                                      "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                                    },
                                    {
                                      "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                    }
                                  ]
                                }
                              }
                            }
                          },
                          "defaultTreatment": {
                            "oneOf": [
                              {
                                "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                              },
                              {
                                "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                              }
                            ]
                          },
                          "baselineTreatment": {
                            "oneOf": [
                              {
                                "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                              },
                              {
                                "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                              }
                            ]
                          }
                        }
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "instructions": {
                    "description": "Ordered list of flag definition instructions to apply atomically. Each instruction type may appear at most once (validated when using a literal array; expressions are not checked).",
                    "oneOf": [
                      {
                        "allOf": [
                          {
                            "type": "array",
                            "minItems": 1,
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "required": [
                                "type",
                                "value"
                              ],
                              "properties": {
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "SetDefaultTreatment",
                                    "SetBaselineTreatment",
                                    "SetTrackImpression",
                                    "SetLimitExposure",
                                    "UpdateIndividualTargets",
                                    "UpdateDynamicConfiguration",
                                    "SetTargetingRules",
                                    "SetDefaultAllocations",
                                    "SetTreatments",
                                    "SetRolloutStatus",
                                    "SetFlagKilled"
                                  ]
                                },
                                "value": {}
                              },
                              "allOf": [
                                {
                                  "if": {
                                    "properties": {
                                      "type": {
                                        "enum": [
                                          "SetDefaultTreatment"
                                        ]
                                      }
                                    }
                                  },
                                  "then": {
                                    "properties": {
                                      "value": {
                                        "oneOf": [
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                          }
                                        ]
                                      }
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "properties": {
                                      "type": {
                                        "enum": [
                                          "SetBaselineTreatment"
                                        ]
                                      }
                                    }
                                  },
                                  "then": {
                                    "properties": {
                                      "value": {
                                        "oneOf": [
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                          }
                                        ]
                                      }
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "properties": {
                                      "type": {
                                        "enum": [
                                          "SetTrackImpression"
                                        ]
                                      }
                                    }
                                  },
                                  "then": {
                                    "properties": {
                                      "value": {
                                        "oneOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                          }
                                        ]
                                      }
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "properties": {
                                      "type": {
                                        "enum": [
                                          "SetLimitExposure"
                                        ]
                                      }
                                    }
                                  },
                                  "then": {
                                    "properties": {
                                      "value": {
                                        "oneOf": [
                                          {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 100
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                          }
                                        ]
                                      }
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "properties": {
                                      "type": {
                                        "enum": [
                                          "UpdateIndividualTargets"
                                        ]
                                      }
                                    }
                                  },
                                  "then": {
                                    "properties": {
                                      "value": {
                                        "oneOf": [
                                          {
                                            "type": "array",
                                            "minItems": 1,
                                            "items": {
                                              "type": "object",
                                              "required": [
                                                "treatment",
                                                "actions"
                                              ],
                                              "properties": {
                                                "treatment": {
                                                  "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                                                },
                                                "actions": {
                                                  "type": "array",
                                                  "minItems": 1,
                                                  "items": {
                                                    "type": "object",
                                                    "required": [
                                                      "action",
                                                      "value"
                                                    ],
                                                    "properties": {
                                                      "action": {
                                                        "type": "string",
                                                        "enum": [
                                                          "AddKeys",
                                                          "RemoveKeys",
                                                          "AddSegments",
                                                          "RemoveSegments",
                                                          "SetKeys",
                                                          "SetSegments"
                                                        ]
                                                      },
                                                      "value": {
                                                        "type": "array",
                                                        "minItems": 1,
                                                        "items": {
                                                          "type": "string"
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                          }
                                        ]
                                      }
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "properties": {
                                      "type": {
                                        "enum": [
                                          "UpdateDynamicConfiguration"
                                        ]
                                      }
                                    }
                                  },
                                  "then": {
                                    "properties": {
                                      "value": {
                                        "oneOf": [
                                          {
                                            "type": "array",
                                            "minItems": 1,
                                            "items": {
                                              "type": "object",
                                              "required": [
                                                "treatment",
                                                "configuration"
                                              ],
                                              "properties": {
                                                "treatment": {
                                                  "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                                                },
                                                "configuration": {
                                                  "type": [
                                                    "string",
                                                    "null"
                                                  ]
                                                }
                                              }
                                            }
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                          }
                                        ]
                                      }
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "properties": {
                                      "type": {
                                        "enum": [
                                          "SetTargetingRules"
                                        ]
                                      }
                                    }
                                  },
                                  "then": {
                                    "properties": {
                                      "value": {
                                        "oneOf": [
                                          {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "required": [
                                                "condition",
                                                "allocation"
                                              ],
                                              "properties": {
                                                "condition": {
                                                  "description": "Condition object containing rules",
                                                  "type": "object",
                                                  "required": [
                                                    "rules"
                                                  ],
                                                  "properties": {
                                                    "rules": {
                                                      "description": "List of condition rules",
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "IN_SEGMENT",
                                                              "IN_SPLIT",
                                                              "BOOLEAN",
                                                              "ON_DATE",
                                                              "ON_OR_AFTER_DATE",
                                                              "ON_OR_BEFORE_DATE",
                                                              "BETWEEN_DATE",
                                                              "EQUAL_SET",
                                                              "ANY_OF_SET",
                                                              "ALL_OF_SET",
                                                              "PART_OF_SET",
                                                              "EQUAL_NUMBER",
                                                              "LESS_THAN_OR_EQUAL_NUMBER",
                                                              "GREATER_THAN_OR_EQUAL_NUMBER",
                                                              "BETWEEN_NUMBER",
                                                              "IN_LIST_STRING",
                                                              "STARTS_WITH_STRING",
                                                              "ENDS_WITH_STRING",
                                                              "CONTAINS_STRING",
                                                              "MATCHES_STRING",
                                                              "EQUAL_TO_SEMVER",
                                                              "GREATER_THAN_OR_EQUAL_TO_SEMVER",
                                                              "LESS_THAN_OR_EQUAL_TO_SEMVER",
                                                              "BETWEEN_SEMVER",
                                                              "IN_LIST_SEMVER"
                                                            ]
                                                          },
                                                          "negate": {
                                                            "type": "boolean",
                                                            "default": false
                                                          },
                                                          "feature_flag": {
                                                            "description": "Feature flag name (only for IN_SPLIT type)",
                                                            "oneOf": [
                                                              {
                                                                "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                                                              },
                                                              {
                                                                "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                                              }
                                                            ]
                                                          },
                                                          "attribute": {
                                                            "description": "Attribute name for attribute-based matchers",
                                                            "type": "string"
                                                          },
                                                          "value": {
                                                            "description": "Value for the matcher (can be single, multiple, or between)",
                                                            "oneOf": [
                                                              {
                                                                "type": "boolean"
                                                              },
                                                              {
                                                                "type": "number"
                                                              },
                                                              {
                                                                "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                                                              },
                                                              {
                                                                "type": "array",
                                                                "items": {
                                                                  "oneOf": [
                                                                    {
                                                                      "type": "number"
                                                                    },
                                                                    {
                                                                      "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                                                                    },
                                                                    {
                                                                      "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                                                    }
                                                                  ]
                                                                }
                                                              },
                                                              {
                                                                "type": "object",
                                                                "required": [
                                                                  "from",
                                                                  "to"
                                                                ],
                                                                "properties": {
                                                                  "from": {
                                                                    "oneOf": [
                                                                      {
                                                                        "type": "number"
                                                                      },
                                                                      {
                                                                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                                                                      },
                                                                      {
                                                                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                                                      }
                                                                    ]
                                                                  },
                                                                  "to": {
                                                                    "oneOf": [
                                                                      {
                                                                        "type": "number"
                                                                      },
                                                                      {
                                                                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                                                                      },
                                                                      {
                                                                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                                                      }
                                                                    ]
                                                                  }
                                                                }
                                                              },
                                                              {
                                                                "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                                              }
                                                            ]
                                                          }
                                                        }
                                                      }
                                                    }
                                                  }
                                                },
                                                "allocation": {
                                                  "description": "Traffic allocation across treatments",
                                                  "oneOf": [
                                                    {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "required": [
                                                          "treatment",
                                                          "size"
                                                        ],
                                                        "properties": {
                                                          "treatment": {
                                                            "oneOf": [
                                                              {
                                                                "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                                                              },
                                                              {
                                                                "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                                              }
                                                            ]
                                                          },
                                                          "size": {
                                                            "oneOf": [
                                                              {
                                                                "type": "integer",
                                                                "minimum": 0,
                                                                "maximum": 100
                                                              },
                                                              {
                                                                "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                                              }
                                                            ]
                                                          }
                                                        }
                                                      }
                                                    },
                                                    {
                                                      "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                                    }
                                                  ]
                                                }
                                              }
                                            }
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                          }
                                        ]
                                      }
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "properties": {
                                      "type": {
                                        "enum": [
                                          "SetDefaultAllocations"
                                        ]
                                      }
                                    }
                                  },
                                  "then": {
                                    "properties": {
                                      "value": {
                                        "oneOf": [
                                          {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "required": [
                                                "treatment",
                                                "amount"
                                              ],
                                              "properties": {
                                                "treatment": {
                                                  "oneOf": [
                                                    {
                                                      "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                                                    },
                                                    {
                                                      "$ref": "#/definitions/pipeline/steps/common/common-jexl-expression-only"
                                                    }
                                                  ]
                                                },
                                                "amount": {
                                                  "oneOf": [
                                                    {
                                                      "type": "integer",
                                                      "maximum": 100,
                                                      "minimum": 0
                                                    },
                                                    {
                                                      "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                                    }
                                                  ]
                                                }
                                              }
                                            }
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                          }
                                        ]
                                      }
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "properties": {
                                      "type": {
                                        "enum": [
                                          "SetTreatments"
                                        ]
                                      }
                                    }
                                  },
                                  "then": {
                                    "properties": {
                                      "value": {
                                        "oneOf": [
                                          {
                                            "type": "array",
                                            "minItems": 2,
                                            "items": {
                                              "type": "object",
                                              "required": [
                                                "treatment",
                                                "description"
                                              ],
                                              "properties": {
                                                "treatment": {
                                                  "oneOf": [
                                                    {
                                                      "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-treatments"
                                                    },
                                                    {
                                                      "$ref": "#/definitions/pipeline/steps/common/common-jexl-expression-only"
                                                    }
                                                  ]
                                                },
                                                "description": {
                                                  "oneOf": [
                                                    {
                                                      "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                                                    },
                                                    {
                                                      "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                                    }
                                                  ]
                                                }
                                              }
                                            }
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                          }
                                        ]
                                      }
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "properties": {
                                      "type": {
                                        "enum": [
                                          "SetRolloutStatus"
                                        ]
                                      }
                                    }
                                  },
                                  "then": {
                                    "properties": {
                                      "value": {
                                        "oneOf": [
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                          }
                                        ]
                                      }
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "properties": {
                                      "type": {
                                        "enum": [
                                          "SetFlagKilled"
                                        ]
                                      }
                                    }
                                  },
                                  "then": {
                                    "properties": {
                                      "value": {
                                        "oneOf": [
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                          }
                                        ]
                                      }
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        ]
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "https://json-schema.org/draft/2019-09/schema"
          },
          "FmeMetricCheckStepNode": {
            "title": "FmeMetricCheckStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FmeMetricCheckStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FmeMetricCheck"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FmeMetricCheck"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FmeMetricCheckStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FmeMetricCheckStepInfo": {
            "title": "FmeMetricCheckStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "flagName",
                  "environment",
                  "lookbackWindow",
                  "failureCriteria"
                ],
                "properties": {
                  "flagName": {
                    "description": "Feature flag name. Maps to testId in Tinybird queries.",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-flag-name"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "environment": {
                    "description": "FME Environment ID",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/fme-flag-common-environment"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "metrics": {
                    "description": "One or more metrics to evaluate",
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "ref"
                          ],
                          "properties": {
                            "ref": {
                              "description": "Webadmin metric ID",
                              "oneOf": [
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                                },
                                {
                                  "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                                }
                              ]
                            }
                          }
                        },
                        "minItems": 1
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "lookbackWindow": {
                    "description": "Time window from now (e.g. 7d, 24h)",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "failureCriteria": {
                    "description": "Criteria to determine step failure. When condition evaluates to true, the step fails.",
                    "type": "object",
                    "required": [
                      "type",
                      "spec"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "Jexl"
                        ]
                      },
                      "spec": {
                        "type": "object",
                        "required": [
                          "condition"
                        ],
                        "properties": {
                          "condition": {
                            "description": "JEXL condition expression. Evaluates to true = FAIL, false = PASS.",
                            "oneOf": [
                              {
                                "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                              },
                              {
                                "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                              }
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "VmInfraSpec": {
            "title": "VmInfraSpec",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Pool"
                ]
              },
              "description": {
                "desc": "This is the description for VmInfraSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "SscaComplianceSource": {
            "title": "SscaComplianceSource",
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "scm",
                  "github",
                  "harness"
                ]
              },
              "description": {
                "desc": "This is the description for SscaComplianceSource"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "scm"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/RepositorySscaComplianceSource"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "github"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/RepositorySscaComplianceSource"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "harness"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/HarnessSscaComplianceSource"
                    }
                  }
                }
              }
            ]
          },
          "RepositorySscaComplianceSource": {
            "title": "RepositorySscaComplianceSource",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/SbomSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "scan_org"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "repoName": {
                    "type": "string"
                  },
                  "scan_org": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+.*>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "description": {
                    "desc": "This is the description for RepositorySscaComplianceSource"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "HarnessSscaComplianceSource": {
            "title": "HarnessSscaComplianceSource",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/custom/SbomSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "type",
                  "pipelineIds"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "pipeline"
                    ]
                  },
                  "pipelineIds": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "minLength": 1
                      }
                    ]
                  },
                  "description": {
                    "desc": "This is the description for RepositorySscaComplianceSource"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FlagConfigurationStepNode": {
            "title": "FlagConfigurationStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FlagConfigurationStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FlagConfiguration"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FlagConfiguration"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/FlagConfigurationStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FlagConfigurationStepInfo": {
            "title": "FlagConfigurationStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "environment",
                  "feature",
                  "instructions"
                ],
                "properties": {
                  "environment": {
                    "type": "string"
                  },
                  "feature": {
                    "type": "string"
                  },
                  "instructions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/custom/PatchInstruction"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "environment",
              "feature",
              "instructions"
            ],
            "properties": {
              "environment": {
                "type": "string"
              },
              "feature": {
                "type": "string"
              },
              "instructions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/custom/PatchInstruction"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for FlagConfigurationStepInfo"
              }
            }
          },
          "PatchInstruction": {
            "title": "PatchInstruction",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "SetFeatureFlagState",
                  "SetOnVariation",
                  "SetOffVariation",
                  "SetDefaultVariations",
                  "AddRule",
                  "UpdateRule",
                  "AddTargetsToVariationTargetMap",
                  "RemoveTargetsToVariationTargetMap",
                  "AddSegmentToVariationTargetMap",
                  "RemoveSegmentsToVariationTargetMap"
                ]
              },
              "description": {
                "desc": "This is the description for PatchInstruction"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          }
        },
        "common": {
          "RunStepNode": {
            "title": "RunStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for RunStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Run"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Run"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/RunStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "RunStepInfo": {
            "title": "RunStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "command": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "registryRef": {
                    "type": "string"
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      ]
                    }
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "reports": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/UnitTestReport"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "shell": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Sh",
                          "Bash",
                          "Powershell",
                          "Pwsh",
                          "Python"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "command": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "registryRef": {
                "type": "string"
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "reports": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/UnitTestReport"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "shell": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Sh",
                      "Bash",
                      "Powershell",
                      "Pwsh",
                      "Python"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputAlias": {
                "$ref": "#/definitions/pipeline/steps/custom/OutputAlias"
              },
              "description": {
                "desc": "This is the description for RunStepInfo"
              }
            }
          },
          "UnitTestReport": {
            "title": "UnitTestReport",
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "JUnit"
                ]
              },
              "description": {
                "desc": "This is the description for UnitTestReport"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "JUnit"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/JUnitTestReport"
                    }
                  }
                }
              }
            ]
          },
          "JUnitTestReport": {
            "title": "JUnitTestReport",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/UnitTestReportSpec"
              },
              {
                "type": "object",
                "properties": {
                  "paths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for JUnitTestReport"
              }
            }
          },
          "UnitTestReportSpec": {
            "title": "UnitTestReportSpec",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for UnitTestReportSpec"
              }
            }
          },
          "PluginStepNode": {
            "title": "PluginStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for PluginStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Plugin"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Plugin"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/PluginStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "PluginStepInfo": {
            "title": "PluginStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "registryRef": {
                    "type": "string"
                  },
                  "entrypoint": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "reports": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/UnitTestReport"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "uses": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "registryRef": {
                "type": "string"
              },
              "entrypoint": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "reports": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/UnitTestReport"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "uses": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for PluginStepInfo"
              }
            }
          },
          "ActionStepNode": {
            "title": "ActionStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ActionStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Action"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Action"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ActionStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ActionStepInfo": {
            "title": "ActionStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "uses"
                ],
                "properties": {
                  "env": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/ParameterFieldMapStringString"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "uses": {
                    "type": "string"
                  },
                  "with": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/ParameterFieldMapStringString"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "uses"
            ],
            "properties": {
              "env": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ParameterFieldMapStringString"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "uses": {
                "type": "string"
              },
              "with": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ParameterFieldMapStringString"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for ActionStepInfo"
              }
            }
          },
          "ParameterFieldMapStringString": {
            "title": "ParameterFieldMapStringString",
            "type": "object",
            "properties": {
              "defaultValue": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "executionInput": {
                "type": "boolean"
              },
              "expression": {
                "type": "boolean"
              },
              "expressionValue": {
                "type": "string"
              },
              "inputSetValidator": {
                "$ref": "#/definitions/pipeline/common/InputSetValidator"
              },
              "jsonResponseField": {
                "type": "boolean"
              },
              "responseField": {
                "type": "string"
              },
              "typeString": {
                "type": "boolean"
              },
              "value": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "description": {
                "desc": "This is the description for ParameterFieldMapStringString"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "AgentStepNode": {
            "title": "AgentStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AgentStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Agent"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Agent"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AgentStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AgentStepInfo": {
            "title": "AgentStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "agentName"
                ],
                "properties": {
                  "agentName": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "agentSettings": {
                    "oneOf": [
                      {
                        "type": "string",
                        "not": {
                          "pattern": "^<\\+.*>.*$"
                        }
                      },
                      {
                        "type": "object",
                        "additionalProperties": true
                      },
                      {
                        "type": "string",
                        "pattern": "^(<\\+.+>.*)$",
                        "minLength": 1
                      }
                    ]
                  },
                  "llmConnector": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "mcpConnectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "agentName": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "agentSettings": {
                "oneOf": [
                  {
                    "type": "string",
                    "not": {
                      "pattern": "^<\\+.*>.*$"
                    }
                  },
                  {
                    "type": "object",
                    "additionalProperties": true
                  },
                  {
                    "type": "string",
                    "pattern": "^(<\\+.+>.*)$",
                    "minLength": 1
                  }
                ]
              },
              "llmConnector": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "mcpConnectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AgentStepInfo"
              }
            }
          },
          "string-without-jexl": {
            "title": "string-without-jexl",
            "description": "A plain string type that explicitly excludes JEXL expressions (e.g., <+input>, <+variable>).\n\nThis is used in oneOf schemas alongside common-jexl to prevent validation conflicts.\nWithout the 'not' constraint, both schemas would match JEXL expressions since both are \ntype: string, causing oneOf validation to fail (oneOf requires exactly one match).\n\nThe 'not' pattern ensures mutual exclusivity:\n- This schema matches: plain strings that don't start with <+\n- common-jexl matches: JEXL expressions like <+input>, <+variable>, etc.\n\nUse this when you need a field that accepts either a literal string OR a JEXL expression.\n",
            "type": "string",
            "not": {
              "pattern": "^<\\+.*>.*$"
            }
          },
          "common-jexl": {
            "title": "common-jexl",
            "type": "string",
            "pattern": "(<\\+.+>.*)"
          },
          "WizScanNode": {
            "title": "WizScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for WizScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Wiz"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Wiz"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/WizStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "WizStepInfo": {
            "title": "WizStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "default",
                          "wiz-container-images",
                          "wiz-directory",
                          "wiz-iac-templates"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "default",
                      "wiz-container-images",
                      "wiz-directory",
                      "wiz-iac-templates"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlWizToolData"
              },
              "description": {
                "desc": "This is the description for WizStepInfo"
              }
            }
          },
          "STOYamlAdvancedSettings": {
            "title": "STOYamlAdvancedSettings",
            "type": "object",
            "properties": {
              "args": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlArgs"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "fail_on_severity": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "critical",
                      "high",
                      "medium",
                      "low",
                      "none"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "include_raw": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "log": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlLog"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for STOYamlAdvancedSettings"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "STOYamlArgs": {
            "title": "STOYamlArgs",
            "type": "object",
            "properties": {
              "cli": {
                "type": "string"
              },
              "passthrough": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for STOYamlArgs"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "STOYamlLog": {
            "title": "STOYamlLog",
            "type": "object",
            "properties": {
              "level": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "info",
                      "debug",
                      "warning",
                      "error"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "serializer": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "simple",
                      "basic",
                      "bunyan",
                      "simple_onprem",
                      "onprem"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for STOYamlLog"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "STOYamlAuth": {
            "title": "STOYamlAuth",
            "type": "object",
            "required": [
              "access_token"
            ],
            "properties": {
              "access_id": {
                "type": "string"
              },
              "access_token": {
                "type": "string"
              },
              "domain": {
                "type": "string"
              },
              "region": {
                "type": "string"
              },
              "ssl": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "type": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "apiKey",
                      "usernamePassword",
                      "aws",
                      "azure",
                      "gcp"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "version": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for STOYamlAuth"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "STOYamlImage": {
            "title": "STOYamlImage",
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "access_id": {
                "type": "string"
              },
              "access_token": {
                "type": "string"
              },
              "domain": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "region": {
                "type": "string"
              },
              "tag": {
                "type": "string"
              },
              "registry": {
                "type": "string"
              },
              "image_path": {
                "type": "string"
              },
              "type": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "aws_ecr",
                      "docker_v2",
                      "jfrog_artifactory",
                      "local_image",
                      "local_archive",
                      "harness"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for STOYamlImage"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "STOYamlIngestion": {
            "title": "STOYamlIngestion",
            "type": "object",
            "properties": {
              "file": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for STOYamlIngestion"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "STOYamlTarget": {
            "title": "STOYamlTarget",
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "type": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "repository",
                      "container",
                      "instance",
                      "configuration"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "variant": {
                "type": "string"
              },
              "detection": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "manual",
                      "auto"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "workspace": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for STOYamlTarget"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "STOYamlWizToolData": {
            "title": "STOYamlWizToolData",
            "type": "object",
            "required": [
              "project_id"
            ],
            "properties": {
              "project_id": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for STOYamlWizToolData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CustomIngestScanNode": {
            "title": "CustomIngestScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for CustomIngestScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CustomIngest"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CustomIngest"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/CustomIngestStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "CustomIngestStepInfo": {
            "title": "CustomIngestStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "default",
                          "sarif"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "default",
                      "sarif"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for CustomIngestStepInfo"
              }
            }
          },
          "SecurityNode": {
            "title": "SecurityNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SecurityNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Security"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Anchore"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AnchoreStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AquaSecurity"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AquaSecurityStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AWSECR"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AwsEcrStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AWSSecurityHub"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AwsSecurityHubStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AquaTrivy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AquaTrivyStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Bandit"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/BanditStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "BlackDuck"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/BlackDuckStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Brakeman"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/BrakemanStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Burp"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/BurpStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Checkmarx"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/CheckmarxStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CheckmarxOne"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/CheckmarxOneStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Checkov"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/CheckovStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Clair"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ClairStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CodeQL"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/CodeqlStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CustomIngest"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/CustomIngestStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DataTheorem"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/DataTheoremStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DockerContentTrust"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/DockerContentTrustStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FortifyOnDemand"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/FortifyOnDemandStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Fossa"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/FossaStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GitHubAdvancedSecurity"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/GitHubAdvancedSecurityStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Gitleaks"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/GitleaksStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Grype"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/GrypeStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "JfrogXray"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/JfrogXrayStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Mend"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/MendStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Metasploit"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/MetasploitStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Nessus"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/NessusStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "NexusIQ"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/NexusIQStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Nikto"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/NiktoStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Nmap"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/NmapStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Openvas"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/OpenvasStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "OsvScanner"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/OsvScannerStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Owasp"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/OwaspStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "PrismaCloud"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/PrismaCloudStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Prowler"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ProwlerStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Qualys"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/QualysStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Reapsaw"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ReapsawStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Security"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SecurityStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Semgrep"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SemgrepStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ShiftLeft"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ShiftLeftStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Sniper"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SniperStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Snyk"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SnykStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Sonarqube"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SonarqubeStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Sysdig"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SysdigStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Tenable"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/TenableStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Traceable"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/TraceableStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Veracode"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/VeracodeStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Zap"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ZapStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Wiz"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/WizStepInfo"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ModelScan"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ModelScanStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AnchoreStepInfo": {
            "title": "AnchoreStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "default",
                          "all",
                          "non-os",
                          "os"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAnchoreToolData"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "default",
                      "all",
                      "non-os",
                      "os"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAnchoreToolData"
              },
              "description": {
                "desc": "This is the description for AnchoreStepInfo"
              }
            }
          },
          "STOYamlAnchoreToolData": {
            "title": "STOYamlAnchoreToolData",
            "type": "object",
            "properties": {
              "image_name": {
                "type": "string"
              },
              "ingest_tool_severity": {
                "type": "boolean"
              },
              "description": {
                "desc": "This is the description for STOYamlAnchorelData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "AquaSecurityStepInfo": {
            "title": "AquaSecurityStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "default",
                          "self-hosted"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "default",
                      "self-hosted"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for AquaSecurityStepInfo"
              }
            }
          },
          "AwsEcrStepInfo": {
            "title": "AwsEcrStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "image": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "image": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for AwsEcrStepInfo"
              }
            }
          },
          "AwsSecurityHubStepInfo": {
            "title": "AwsSecurityHubStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for AwsSecurityHubStepInfo"
              }
            }
          },
          "AquaTrivyStepInfo": {
            "title": "AquaTrivyStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/common/ParameterFieldListString"
                  },
                  "config": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "default",
                          "fs",
                          "sbom"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "sbom": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlSBOM"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/common/ParameterFieldListString"
              },
              "config": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "default",
                      "fs",
                      "sbom"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
              },
              "repository": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlRepository"
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "sbom": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlSBOM"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for AquaTrivyStepInfo"
              }
            }
          },
          "ParameterFieldListString": {
            "title": "ParameterFieldListString",
            "type": "object",
            "properties": {
              "defaultValue": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "executionInput": {
                "type": "boolean"
              },
              "expression": {
                "type": "boolean"
              },
              "expressionValue": {
                "type": "string"
              },
              "inputSetValidator": {
                "$ref": "#/definitions/pipeline/common/InputSetValidator"
              },
              "jsonResponseField": {
                "type": "boolean"
              },
              "responseField": {
                "type": "string"
              },
              "typeString": {
                "type": "boolean"
              },
              "value": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "description": {
                "desc": "This is the description for ParameterFieldListString"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "STOYamlSBOM": {
            "title": "STOYamlSBOM",
            "type": "object",
            "properties": {
              "format": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "spdx-json",
                      "cyclonedx-json"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "generate": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for STOYamlSBOM"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "STOYamlRepository": {
            "title": "STOYamlRepository",
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "harness",
                      "local"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "registry": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "version": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for STOYamlRepository"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "BanditStepInfo": {
            "title": "BanditStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for BanditStepInfo"
              }
            }
          },
          "BlackDuckStepInfo": {
            "title": "BlackDuckStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "image": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "sbom": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlSBOM"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlBlackduckToolData"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "image": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "sbom": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlSBOM"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlBlackduckToolData"
              },
              "description": {
                "desc": "This is the description for BlackDuckStepInfo"
              }
            }
          },
          "STOYamlBlackduckToolData": {
            "title": "STOYamlBlackduckToolData",
            "type": "object",
            "properties": {
              "project_name": {
                "type": "string"
              },
              "project_version": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for STOYamlBlackduckToolData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "BrakemanStepInfo": {
            "title": "BrakemanStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for BrakemanStepInfo"
              }
            }
          },
          "BurpStepInfo": {
            "title": "BurpStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "default",
                          "never-stop-crawl-due-to-application-errors",
                          "never-stop-audit-due-to-application-errors",
                          "minimize-false-positives",
                          "minimize-false-negatives",
                          "crawl-strategy-most-complete",
                          "crawl-strategy-more-complete",
                          "crawl-strategy-fastest",
                          "crawl-strategy-faster",
                          "crawl-limit-60-minutes",
                          "crawl-limit-30-minutes",
                          "crawl-limit-10-minutes",
                          "crawl-and-audit-lightweight",
                          "crawl-and-audit-fast",
                          "crawl-and-audit-deep",
                          "crawl-and-audit-balanced",
                          "audit-coverage-thorough",
                          "audit-coverage-maximum",
                          "audit-checks-passive",
                          "audit-checks-medium-active",
                          "audit-checks-light-active",
                          "audit-checks-critical-issues-only",
                          "audit-checks-all-except-time-based-detection-methods",
                          "audit-checks-all-except-java-script-analysis"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "instance": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlBurpToolData"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "default",
                      "never-stop-crawl-due-to-application-errors",
                      "never-stop-audit-due-to-application-errors",
                      "minimize-false-positives",
                      "minimize-false-negatives",
                      "crawl-strategy-most-complete",
                      "crawl-strategy-more-complete",
                      "crawl-strategy-fastest",
                      "crawl-strategy-faster",
                      "crawl-limit-60-minutes",
                      "crawl-limit-30-minutes",
                      "crawl-limit-10-minutes",
                      "crawl-and-audit-lightweight",
                      "crawl-and-audit-fast",
                      "crawl-and-audit-deep",
                      "crawl-and-audit-balanced",
                      "audit-coverage-thorough",
                      "audit-coverage-maximum",
                      "audit-checks-passive",
                      "audit-checks-medium-active",
                      "audit-checks-light-active",
                      "audit-checks-critical-issues-only",
                      "audit-checks-all-except-time-based-detection-methods",
                      "audit-checks-all-except-java-script-analysis"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "instance": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlBurpToolData"
              },
              "description": {
                "desc": "This is the description for BurpStepInfo"
              }
            }
          },
          "STOYamlInstance": {
            "title": "STOYamlInstance",
            "type": "object",
            "properties": {
              "domain": {
                "type": "string"
              },
              "password": {
                "type": "string"
              },
              "path": {
                "type": "string"
              },
              "port": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "protocol": {
                "type": "string"
              },
              "username": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for STOYamlInstance"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "STOYamlBurpToolData": {
            "title": "STOYamlBurpToolData",
            "type": "object",
            "properties": {
              "scan_id": {
                "type": "string"
              },
              "site_id": {
                "type": "string"
              },
              "start_urls": {
                "type": "string"
              },
              "in_scope_url_prefixes": {
                "type": "string"
              },
              "out_of_scope_url_prefixes": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for STOYamlBurpToolData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CheckmarxStepInfo": {
            "title": "CheckmarxStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "default",
                          "cxsast",
                          "cxsca",
                          "cxosa"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlCheckmarxToolData"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "default",
                      "cxsast",
                      "cxsca",
                      "cxosa"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlCheckmarxToolData"
              },
              "description": {
                "desc": "This is the description for CheckmarxStepInfo"
              }
            }
          },
          "STOYamlCheckmarxToolData": {
            "title": "STOYamlCheckmarxToolData",
            "type": "object",
            "properties": {
              "project_name": {
                "type": "string"
              },
              "team_name": {
                "type": "string"
              },
              "ingest_tool_severity": {
                "type": "boolean"
              },
              "environment_id": {
                "type": "string"
              },
              "context": {
                "type": "string"
              },
              "scan_type": {
                "type": "string",
                "enum": [
                  "DAST",
                  "DASTAPI"
                ]
              },
              "description": {
                "desc": "This is the description for STOYamlCheckmarxToolData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CheckmarxOneStepInfo": {
            "title": "CheckmarxOneStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "image": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "instance": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlCheckmarxToolData"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "image": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "instance": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlCheckmarxToolData"
              },
              "description": {
                "desc": "This is the description for CheckmarxOneStepInfo"
              }
            }
          },
          "CheckovStepInfo": {
            "title": "CheckovStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for BanditStepInfo"
              }
            }
          },
          "ClairStepInfo": {
            "title": "ClairStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for ClairStepInfo"
              }
            }
          },
          "CodeqlStepInfo": {
            "title": "CodeqlStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for CodeqlStepInfo"
              }
            }
          },
          "DataTheoremStepInfo": {
            "title": "DataTheoremStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for DataTheoremStepInfo"
              }
            }
          },
          "DockerContentTrustStepInfo": {
            "title": "DockerContentTrustStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "image": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "image": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for DockerContentTrustStepInfo"
              }
            }
          },
          "FortifyOnDemandStepInfo": {
            "title": "FortifyOnDemandStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "image": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlFODToolData"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "image": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlFODToolData"
              },
              "description": {
                "desc": "This is the description for FortifyOnDemandStepInfo"
              }
            }
          },
          "STOYamlFODToolData": {
            "title": "STOYamlFODToolData",
            "type": "object",
            "properties": {
              "app_name": {
                "type": "string"
              },
              "audit_type": {
                "type": "string"
              },
              "data_center": {
                "type": "string"
              },
              "entitlement": {
                "type": "string"
              },
              "lookup_type": {
                "type": "string"
              },
              "owner_id": {
                "type": "string"
              },
              "release_name": {
                "type": "string"
              },
              "scan_settings": {
                "type": "string"
              },
              "scan_type": {
                "type": "string"
              },
              "target_language": {
                "type": "string"
              },
              "target_language_version": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for STOYamlFODToolData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FossaStepInfo": {
            "title": "FossaStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlFossaToolData"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlFossaToolData"
              },
              "description": {
                "desc": "This is the description for FossaStepInfo"
              }
            }
          },
          "STOYamlFossaToolData": {
            "title": "STOYamlFossaToolData",
            "type": "object",
            "properties": {
              "policy_name": {
                "type": "string"
              },
              "project_name": {
                "type": "string"
              },
              "team_name": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for STOYamlFossaToolData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "GitHubAdvancedSecurityStepInfo": {
            "title": "GitHubAdvancedSecurityStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "default",
                          "codeql",
                          "dependabot",
                          "secret"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "default",
                      "codeql",
                      "dependabot",
                      "secret"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for GitHubAdvancedSecurityStepInfo"
              }
            }
          },
          "GitleaksStepInfo": {
            "title": "GitleaksStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for GitleaksStepInfo"
              }
            }
          },
          "GrypeStepInfo": {
            "title": "GrypeStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "image": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "image": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for GrypeStepInfo"
              }
            }
          },
          "JfrogXrayStepInfo": {
            "title": "JfrogXrayStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for JfrogXrayStepInfo"
              }
            }
          },
          "MendStepInfo": {
            "title": "MendStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "default",
                          "sast",
                          "sca",
                          "container"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlMendToolData"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "default",
                      "sast",
                      "sca",
                      "container"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlMendToolData"
              },
              "description": {
                "desc": "This is the description for MendStepInfo"
              }
            }
          },
          "STOYamlMendToolData": {
            "title": "STOYamlMendToolData",
            "type": "object",
            "properties": {
              "exclude": {
                "type": "string"
              },
              "include": {
                "type": "string"
              },
              "product_name": {
                "type": "string"
              },
              "product_token": {
                "type": "string"
              },
              "project_name": {
                "type": "string"
              },
              "project_token": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for STOYamlMendToolData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "MetasploitStepInfo": {
            "title": "MetasploitStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "default",
                          "metasploit-weak-ssh",
                          "metasploit-openssl-heartbleed"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ],
                    "enum": [
                      "default",
                      "metasploit-weak-ssh",
                      "metasploit-openssl-heartbleed"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "instance": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "default",
                      "metasploit-weak-ssh",
                      "metasploit-openssl-heartbleed"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "instance": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for MetasploitStepInfo"
              }
            }
          },
          "NessusStepInfo": {
            "title": "NessusStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "instance": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "instance": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for NessusStepInfo"
              }
            }
          },
          "NexusIQStepInfo": {
            "title": "NexusIQStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlNexusIqToolData"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlNexusIqToolData"
              },
              "description": {
                "desc": "This is the description for NexusIQStepInfo"
              }
            }
          },
          "STOYamlNexusIqToolData": {
            "title": "STOYamlNexusIqToolData",
            "type": "object",
            "required": [
              "lookup_id"
            ],
            "properties": {
              "project_name": {
                "type": "string"
              },
              "lookup_id": {
                "type": "string"
              },
              "organization_id": {
                "type": "string"
              },
              "product_lookup_type": {
                "type": "string"
              },
              "exclude": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for STOYamlNexusIqToolData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "NiktoStepInfo": {
            "title": "NiktoStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "instance": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "instance": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for NiktoStepInfo"
              }
            }
          },
          "NmapStepInfo": {
            "title": "NmapStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "default",
                          "firewall-bypass",
                          "unusual-port",
                          "smb-security-mode",
                          "vuln",
                          "exploit",
                          "no-default-cli-flags"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "instance": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "default",
                      "firewall-bypass",
                      "unusual-port",
                      "smb-security-mode",
                      "vuln",
                      "exploit",
                      "no-default-cli-flags"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "instance": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for NmapStepInfo"
              }
            }
          },
          "OpenvasStepInfo": {
            "title": "OpenvasStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "instance": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "instance": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for OpenvasStepInfo"
              }
            }
          },
          "OsvScannerStepInfo": {
            "title": "OsvScannerStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/common/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "image": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/common/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "image": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for OsvScannerStepInfo"
              }
            }
          },
          "OwaspStepInfo": {
            "title": "OwaspStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for OwaspStepInfo"
              }
            }
          },
          "PrismaCloudStepInfo": {
            "title": "PrismaCloudStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "image": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlPrismaCloudToolData"
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "image": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlPrismaCloudToolData"
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for PrismaCloudStepInfo"
              }
            }
          },
          "STOYamlPrismaCloudToolData": {
            "title": "STOYamlPrismaCloudToolData",
            "type": "object",
            "properties": {
              "ingest_tool_severity": {
                "type": "boolean"
              },
              "description": {
                "desc": "This is the description for STOYamlPrismaCloudToolData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ProwlerStepInfo": {
            "title": "ProwlerStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "default",
                          "hipaa",
                          "gdpr",
                          "exclude_extras"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "default",
                      "hipaa",
                      "gdpr",
                      "exclude_extras"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for ProwlerStepInfo"
              }
            }
          },
          "QualysStepInfo": {
            "title": "QualysStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for QualysStepInfo"
              }
            }
          },
          "ReapsawStepInfo": {
            "title": "ReapsawStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for ReapsawStepInfo"
              }
            }
          },
          "SecurityStepInfo": {
            "title": "SecurityStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for SecurityStepInfo"
              }
            }
          },
          "SemgrepStepInfo": {
            "title": "SemgrepStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "default",
                          "no-default-cli-flags",
                          "p-default",
                          "auto-only",
                          "auto-and-ported-security-tools",
                          "auto-and-ported-security-tools-except-p-gitleaks",
                          "scan-third-party-dependencies"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "default",
                      "no-default-cli-flags",
                      "p-default",
                      "auto-only",
                      "auto-and-ported-security-tools",
                      "auto-and-ported-security-tools-except-p-gitleaks",
                      "scan-third-party-dependencies"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for SemgrepStepInfo"
              }
            }
          },
          "ShiftLeftStepInfo": {
            "title": "ShiftLeftStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlShiftLeftToolData"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for ShiftLeftStepInfo"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlShiftLeftToolData"
              }
            }
          },
          "STOYamlShiftLeftToolData": {
            "title": "STOYamlShiftLeftToolData",
            "type": "object",
            "properties": {
              "target_language": {
                "type": "string"
              },
              "app_name": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for STOYamlShiftLeftToolData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "SniperStepInfo": {
            "title": "SniperStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for SniperStepInfo"
              }
            }
          },
          "SnykStepInfo": {
            "title": "SnykStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "default",
                          "oss",
                          "container",
                          "iac",
                          "code"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "sbom": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlSBOM"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlSnykToolData"
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "default",
                      "oss",
                      "container",
                      "iac",
                      "code"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "sbom": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlSBOM"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlSnykToolData"
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for SnykStepInfo"
              }
            }
          },
          "STOYamlSnykToolData": {
            "title": "STOYamlSnykToolData",
            "type": "object",
            "properties": {
              "ingest_tool_severity": {
                "type": "boolean"
              },
              "description": {
                "desc": "This is the description for STOYamlSnykToolData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "SonarqubeStepInfo": {
            "title": "SonarqubeStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "default",
                          "branch-scan"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlSonarqubeToolData"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "default",
                      "branch-scan"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlSonarqubeToolData"
              },
              "description": {
                "desc": "This is the description for SonarqubeStepInfo"
              }
            }
          },
          "STOYamlSonarqubeToolData": {
            "title": "STOYamlSonarqubeToolData",
            "type": "object",
            "properties": {
              "pull_request_key": {
                "type": "string"
              },
              "pull_request_branch": {
                "type": "string"
              },
              "pull_request_base": {
                "type": "string"
              },
              "branch_name": {
                "type": "string"
              },
              "analysis_detection": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "manual",
                      "auto"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "exclude": {
                "type": "string"
              },
              "include": {
                "type": "string"
              },
              "java": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlJavaParameters"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "project_key": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for STOYamlSonarqubeToolData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "STOYamlJavaParameters": {
            "title": "STOYamlJavaParameters",
            "type": "object",
            "properties": {
              "binaries": {
                "type": "string"
              },
              "libraries": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for STOYamlJavaParameters"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "SysdigStepInfo": {
            "title": "SysdigStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "image": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "image": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for SysdigStepInfo"
              }
            }
          },
          "TenableStepInfo": {
            "title": "TenableStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "instance": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "instance": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for TenableStepInfo"
              }
            }
          },
          "TraceableStepInfo": {
            "title": "TraceableStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "mode",
                  "target",
                  "config"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "instance": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTraceableToolData"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "mode",
              "target",
              "config"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "instance": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTraceableToolData"
              },
              "description": {
                "desc": "This is the description for TraceableStepInfo"
              }
            }
          },
          "STOYamlTraceableToolData": {
            "title": "STOYamlTraceableToolData",
            "type": "object",
            "required": [
              "suite_id"
            ],
            "properties": {
              "scan_id": {
                "type": "string"
              },
              "suite_id": {
                "type": "string"
              },
              "runner_id": {
                "type": "string"
              },
              "scan_name": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for STOYamlTraceableToolData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "VeracodeStepInfo": {
            "title": "VeracodeStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "default",
                          "sandbox"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlVeracodeToolData"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "default",
                      "sandbox"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlVeracodeToolData"
              },
              "description": {
                "desc": "This is the description for VeracodeStepInfo"
              }
            }
          },
          "STOYamlVeracodeToolData": {
            "title": "STOYamlVeracodeToolData",
            "type": "object",
            "properties": {
              "app_id": {
                "type": "string"
              },
              "project_name": {
                "type": "string"
              },
              "sandbox_id": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for STOYamlVeracodeToolData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ZapStepInfo": {
            "title": "ZapStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "default",
                          "quick",
                          "attack",
                          "standard"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "instance": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlZapToolData"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "default",
                      "quick",
                      "attack",
                      "standard"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "instance": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlInstance"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlZapToolData"
              },
              "description": {
                "desc": "This is the description for ZapStepInfo"
              }
            }
          },
          "STOYamlZapToolData": {
            "title": "STOYamlZapToolData",
            "type": "object",
            "properties": {
              "context": {
                "type": "string"
              },
              "port": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for STOYamlZapToolData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ModelScanStepInfo": {
            "title": "ModelScanStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for ModelScanStepInfo"
              }
            }
          },
          "CheckovScanNode": {
            "title": "CheckovScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for CheckovScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Checkov"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Checkov"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/CheckovStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SnykScanNode": {
            "title": "SnykScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SnykScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Snyk"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Snyk"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SnykStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "CIVolume": {
            "title": "CIVolume",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "EmptyDir",
                  "PersistentVolumeClaim",
                  "HostPath"
                ]
              },
              "description": {
                "desc": "This is the description for CIVolume"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FilesUploadStepNode": {
            "title": "FilesUploadStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FilesUploadStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_][-0-9a-zA-Z_\\s]{0,127}$"
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FilesUpload"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FilesUpload"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/FilesUploadStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FilesUploadStepInfo": {
            "title": "FilesUploadStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "inputVariables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  },
                  "outputVariables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object"
          },
          "DockerInfraYaml": {
            "title": "DockerInfraYaml",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "spec",
                  "type"
                ],
                "properties": {
                  "spec": {
                    "$ref": "#/definitions/pipeline/steps/common/DockerInfraSpec"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "KubernetesDirect",
                      "UseFromStage",
                      "VM"
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for DockerInfraYaml"
              }
            }
          },
          "Infrastructure": {
            "title": "Infrastructure",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "KubernetesDirect",
                  "UseFromStage",
                  "VM"
                ]
              },
              "description": {
                "desc": "This is the description for Infrastructure"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "DockerInfraSpec": {
            "title": "DockerInfraSpec",
            "type": "object",
            "required": [
              "platform"
            ],
            "properties": {
              "platform": {
                "$ref": "#/definitions/pipeline/steps/common/ParameterFieldPlatform"
              },
              "description": {
                "desc": "This is the description for DockerInfraSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ParameterFieldPlatform": {
            "title": "ParameterFieldPlatform",
            "type": "object",
            "properties": {
              "defaultValue": {
                "$ref": "#/definitions/pipeline/steps/common/Platform"
              },
              "executionInput": {
                "type": "boolean"
              },
              "expression": {
                "type": "boolean"
              },
              "expressionValue": {
                "type": "string"
              },
              "inputSetValidator": {
                "$ref": "#/definitions/pipeline/common/InputSetValidator"
              },
              "jsonResponseField": {
                "type": "boolean"
              },
              "responseField": {
                "type": "string"
              },
              "typeString": {
                "type": "boolean"
              },
              "value": {
                "$ref": "#/definitions/pipeline/steps/common/Platform"
              },
              "description": {
                "desc": "This is the description for ParameterFieldPlatform"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "Platform": {
            "title": "Platform",
            "type": "object",
            "properties": {
              "arch": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Amd64",
                      "Arm64"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "os": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Linux",
                      "MacOS",
                      "Windows"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for Platform"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "HostedVmInfraYaml": {
            "title": "HostedVmInfraYaml",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "spec",
                  "type"
                ],
                "properties": {
                  "spec": {
                    "$ref": "#/definitions/pipeline/steps/common/HostedVmInfraSpec"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "KubernetesDirect",
                      "UseFromStage",
                      "VM"
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for HostedVmInfraYaml"
              }
            }
          },
          "HostedVmInfraSpec": {
            "title": "HostedVmInfraSpec",
            "type": "object",
            "required": [
              "platform"
            ],
            "properties": {
              "platform": {
                "$ref": "#/definitions/pipeline/steps/common/ParameterFieldPlatform"
              },
              "description": {
                "desc": "This is the description for HostedVmInfraSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "K8sDirectInfraYaml": {
            "title": "K8sDirectInfraYaml",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "spec",
                  "type"
                ],
                "properties": {
                  "spec": {
                    "$ref": "#/definitions/pipeline/steps/common/K8sDirectInfraYamlSpec"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "KubernetesDirect",
                      "UseFromStage",
                      "VM"
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for K8sDirectInfraYaml"
              }
            }
          },
          "K8sDirectInfraYamlSpec": {
            "title": "K8sDirectInfraYamlSpec",
            "type": "object",
            "required": [
              "connectorRef",
              "namespace"
            ],
            "properties": {
              "annotations": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "automountServiceAccountToken": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "containerSecurityContext": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/SecurityContext"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "harnessImageConnectorRef": {
                "type": "string"
              },
              "hostNames": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "initTimeout": {
                "type": "string"
              },
              "labels": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "namespace": {
                "type": "string",
                "minLength": 1,
                "maxLength": 2147483647
              },
              "nodeSelector": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "os": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Linux",
                      "MacOS",
                      "Windows"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "priorityClassName": {
                "type": "string"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "serviceAccountName": {
                "type": "string"
              },
              "tolerations": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/custom/Toleration"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "volumes": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/common/CIVolume"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "podSpecOverlay": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for K8sDirectInfraYamlSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "UseFromStageInfraYaml": {
            "title": "UseFromStageInfraYaml",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "useFromStage"
                ],
                "properties": {
                  "useFromStage": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for UseFromStageInfraYaml"
              }
            }
          },
          "VmInfraYaml": {
            "title": "VmInfraYaml",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "spec",
                  "type"
                ],
                "properties": {
                  "spec": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/VmPoolYaml"
                      }
                    ]
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "KubernetesDirect",
                      "UseFromStage",
                      "VM"
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for VmInfraYaml"
              }
            }
          },
          "VmPoolYaml": {
            "title": "VmPoolYaml",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/VmInfraSpec"
              },
              {
                "type": "object",
                "required": [
                  "spec",
                  "type"
                ],
                "properties": {
                  "spec": {
                    "$ref": "#/definitions/pipeline/steps/common/VmPoolYamlSpec"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "Pool"
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for VmPoolYaml"
              }
            }
          },
          "VmInfraSpec": {
            "title": "VmInfraSpec",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Pool"
                ]
              },
              "description": {
                "desc": "This is the description for VmInfraSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "VmPoolYamlSpec": {
            "title": "VmPoolYamlSpec",
            "type": "object",
            "properties": {
              "harnessImageConnectorRef": {
                "type": "string"
              },
              "identifier": {
                "type": "string"
              },
              "initTimeout": {
                "type": "string"
              },
              "os": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Linux",
                      "MacOS",
                      "Windows"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "poolName": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for VmPoolYamlSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CloudRuntime": {
            "title": "CloudRuntime",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Runtime"
              },
              {
                "type": "object",
                "required": [
                  "spec",
                  "type"
                ],
                "properties": {
                  "spec": {
                    "$ref": "#/definitions/pipeline/steps/common/CloudRuntimeSpec"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "Cloud"
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CloudRuntime"
              }
            }
          },
          "Runtime": {
            "title": "Runtime",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Docker",
                  "Cloud"
                ]
              },
              "description": {
                "desc": "This is the description for Runtime"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CloudRuntimeSpec": {
            "title": "CloudRuntimeSpec",
            "type": "object",
            "properties": {
              "size": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "xsmall",
                      "flex",
                      "small",
                      "medium",
                      "large",
                      "xlarge",
                      "xxlarge",
                      "xxxlarge"
                    ]
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "imageName": {
                "type": "string"
              },
              "nestedVirtualization": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for CloudRuntimeSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "DockerRuntime": {
            "title": "DockerRuntime",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Runtime"
              },
              {
                "type": "object",
                "required": [
                  "spec",
                  "type"
                ],
                "properties": {
                  "spec": {
                    "$ref": "#/definitions/pipeline/steps/common/DockerRuntimeSpec"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "Docker"
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for DockerRuntime"
              }
            }
          },
          "DockerRuntimeSpec": {
            "title": "DockerRuntimeSpec",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for DockerRuntimeSpec"
              },
              "harnessImageConnectorRef": {
                "type": "string"
              }
            }
          },
          "DependencyElement": {
            "title": "DependencyElement",
            "type": "object",
            "required": [
              "identifier",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for DependencyElement"
              },
              "identifier": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "spec": {
                "$ref": "#/definitions/pipeline/steps/common/DependencySpecType"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Service"
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "DependencySpecType": {
            "title": "DependencySpecType",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for DependencySpecType"
              }
            }
          },
          "BackgroundStepNode": {
            "title": "BackgroundStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for BackgroundStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Background"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Background"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/BackgroundStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "BackgroundStepInfo": {
            "title": "BackgroundStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "command": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "entrypoint": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "portBindings": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "reports": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/UnitTestReport"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "shell": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Sh",
                          "Bash",
                          "Powershell",
                          "Pwsh",
                          "Python"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "command": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "entrypoint": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "portBindings": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "reports": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/UnitTestReport"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "shell": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Sh",
                      "Bash",
                      "Powershell",
                      "Pwsh",
                      "Python"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for BackgroundStepInfo"
              }
            }
          },
          "SscaEnforcementStepNode": {
            "title": "SscaEnforcementStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SscaEnforcementStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SscaEnforcement"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SscaEnforcement"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SscaEnforcementStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SscaEnforcementStepInfo": {
            "title": "SscaEnforcementStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "description": {
                    "desc": "This is the description for SscaEnforcementStepInfo"
                  },
                  "policy": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/custom/EnforcementPolicy"
                      },
                      {
                        "$ref": "#/definitions/pipeline/common/PolicyConfig"
                      }
                    ]
                  },
                  "source": {
                    "$ref": "#/definitions/pipeline/steps/custom/SbomSource"
                  },
                  "verifyAttestation": {
                    "$ref": "#/definitions/pipeline/steps/custom/VerifyAttestation"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "overrideConnectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "policy",
              "source"
            ]
          },
          "SscaOrchestrationStepNode": {
            "title": "SscaOrchestrationStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SscaOrchestrationStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SscaOrchestration"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SscaOrchestration"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SscaOrchestrationStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SscaOrchestrationStepInfo": {
            "title": "SscaOrchestrationStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "source"
                ],
                "properties": {
                  "attestation": {
                    "$ref": "#/definitions/pipeline/steps/custom/Attestation"
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/SbomFile"
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "generation",
                      "ingestion"
                    ]
                  },
                  "overrideConnectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "source": {
                    "$ref": "#/definitions/pipeline/steps/custom/SbomSource"
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/custom/SbomOrchestrationTool"
                  },
                  "sbom_drift": {
                    "$ref": "#/definitions/pipeline/steps/custom/SbomDrift"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "source"
            ],
            "properties": {
              "attestation": {
                "$ref": "#/definitions/pipeline/steps/custom/Attestation"
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/SbomFile"
              },
              "mode": {
                "type": "string",
                "enum": [
                  "generation",
                  "ingestion"
                ]
              },
              "overrideConnectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "source": {
                "$ref": "#/definitions/pipeline/steps/custom/SbomSource"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/custom/SbomOrchestrationTool"
              },
              "sbom_drift": {
                "$ref": "#/definitions/pipeline/steps/custom/SbomDrift"
              },
              "description": {
                "desc": "This is the description for SscaOrchestrationStepInfo"
              }
            }
          },
          "SbomFile": {
            "title": "SbomFile",
            "type": "object",
            "properties": {
              "file": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for SbomFile"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ArtifactVerificationStepNode": {
            "title": "ArtifactVerificationStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ArtifactVerificationStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SscaArtifactVerification"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SscaArtifactVerification"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ArtifactVerificationStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ArtifactVerificationStepInfo": {
            "title": "ArtifactVerificationStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "source": {
                    "$ref": "#/definitions/pipeline/steps/common/ArtifactSigningSource"
                  },
                  "verifySign": {
                    "$ref": "#/definitions/pipeline/steps/common/SlsaVerifyAttestation"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "overrideConnectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "source": {
                "$ref": "#/definitions/pipeline/steps/common/ArtifactSigningSource"
              },
              "verifySign": {
                "$ref": "#/definitions/pipeline/steps/common/SlsaVerifyAttestation"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "overrideConnectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for ArtifactVerificationStepInfo"
              }
            }
          },
          "ArtifactSigningSource": {
            "title": "ArtifactSigningSource",
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "docker",
                  "gcr",
                  "ecr",
                  "acr",
                  "gar",
                  "har",
                  "local"
                ]
              },
              "description": {
                "desc": "This is the description for ArtifactSigningSource"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "docker"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/DockerSourceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "gcr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/GcrSourceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ecr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/EcrSourceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "acr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AcrSourceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "gar"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/GarSourceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "har"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/HarSbomSource"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "local"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/LocalSourceSpec"
                    }
                  }
                }
              }
            ]
          },
          "DockerSourceSpec": {
            "title": "DockerSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/ArtifactSigningSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "image",
                  "connector"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for DockerSourceSpec"
              }
            }
          },
          "ArtifactSigningSourceSpec": {
            "title": "ArtifactSigningSourceSpec",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ArtifactSigningSourceSpec"
              }
            }
          },
          "GcrSourceSpec": {
            "title": "GcrSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/ArtifactSigningSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "connector",
                  "host",
                  "project_id",
                  "image"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "host": {
                    "type": "string"
                  },
                  "project_id": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GcrSourceSpec"
              }
            }
          },
          "EcrSourceSpec": {
            "title": "EcrSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/ArtifactSigningSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "image",
                  "connector",
                  "region",
                  "account"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  },
                  "account": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for EcrSourceSpec"
              }
            }
          },
          "AcrSourceSpec": {
            "title": "AcrSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/ArtifactSigningSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "connector",
                  "image"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  },
                  "subscription_id": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AcrSourceSpec"
              }
            }
          },
          "GarSourceSpec": {
            "title": "GarSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/ArtifactSigningSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "connector",
                  "host",
                  "project_id",
                  "image"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "host": {
                    "type": "string"
                  },
                  "project_id": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GarSourceSpec"
              }
            }
          },
          "LocalSourceSpec": {
            "title": "LocalSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/ArtifactSigningSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "workspace",
                  "type"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "manual",
                      "auto"
                    ]
                  },
                  "workspace": {
                    "type": "string"
                  },
                  "artifact_name": {
                    "type": "string",
                    "description": "Required when type is manual",
                    "if": {
                      "properties": {
                        "type": {
                          "const": "manual"
                        }
                      }
                    },
                    "then": {
                      "minLength": 1
                    }
                  },
                  "version": {
                    "type": "string",
                    "description": "Required when type is manual",
                    "if": {
                      "properties": {
                        "type": {
                          "const": "manual"
                        }
                      }
                    },
                    "then": {
                      "minLength": 1
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for LocalSourceSpec"
              }
            }
          },
          "SlsaVerifyAttestation": {
            "title": "SlsaVerifyAttestation",
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "cosign",
                  "keyless",
                  "keybased",
                  "secret-manager"
                ]
              },
              "description": {
                "desc": "This is the description for SlsaVerifyAttestation"
              },
              "spec": {
                "type": "object"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "cosign"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "type": "object",
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/steps/common/CosignSlsaVerifyAttestation"
                        },
                        {
                          "$ref": "#/definitions/pipeline/steps/common/CosignSecretManagerVerifyAttestation"
                        }
                      ]
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "keyless"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "type": "object",
                      "$ref": "#/definitions/pipeline/steps/common/KeylessSlsaVerifyAttestation"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "keybased"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "type": "object",
                      "$ref": "#/definitions/pipeline/steps/common/CosignSlsaVerifyAttestation"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "secret-manager"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "type": "object",
                      "$ref": "#/definitions/pipeline/steps/common/CosignSecretManagerVerifyAttestation"
                    }
                  }
                }
              }
            ],
            "additionalProperties": false
          },
          "CosignSlsaVerifyAttestation": {
            "title": "CosignSlsaVerifyAttestation",
            "type": "object",
            "required": [
              "public_key"
            ],
            "properties": {
              "public_key": {
                "type": "string"
              },
              "description": {
                "type": "string",
                "description": "This is the description for Cosign SLSA Verify Attestation"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "$ref": "#/definitions/pipeline/steps/common/SlsaVerifyAttestationSpec"
          },
          "SlsaVerifyAttestationSpec": {
            "title": "SlsaVerifyAttestationSpec",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for SlsaVerifyAttestationSpec"
              }
            }
          },
          "CosignSecretManagerVerifyAttestation": {
            "title": "CosignSecretManagerVerifyAttestation",
            "type": "object",
            "required": [
              "connector",
              "key"
            ],
            "properties": {
              "connector": {
                "type": "string"
              },
              "key": {
                "type": "string"
              },
              "description": {
                "type": "string",
                "description": "This is the description for Cosign Verify Attestation with Secret Manager"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "$ref": "#/definitions/pipeline/steps/common/SlsaVerifyAttestationSpec"
          },
          "KeylessSlsaVerifyAttestation": {
            "title": "KeylessSlsaVerifyAttestation",
            "type": "object",
            "properties": {
              "oidcProvider": {
                "type": "string",
                "enum": [
                  "harness",
                  "non-harness"
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false
          },
          "AiVerifyStepNode": {
            "title": "AiVerifyStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AiVerifyStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AiVerify"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AiVerify"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AiVerifyStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AiVerifyStepInfo": {
            "title": "AiVerifyStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "command": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "registryRef": {
                    "type": "string"
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      ]
                    }
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "reports": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/UnitTestReport"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "shell": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Sh",
                          "Bash",
                          "Powershell",
                          "Pwsh",
                          "Python"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "command": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "registryRef": {
                "type": "string"
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "reports": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/UnitTestReport"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "shell": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Sh",
                      "Bash",
                      "Powershell",
                      "Pwsh",
                      "Python"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AiVerifyStepInfo"
              }
            }
          },
          "AwsCdkBootstrapStepNode": {
            "title": "AwsCdkBootstrapStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AwsCdkBootstrapStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AwsCdkBootstrap"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsCdkBootstrap"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AwsCdkBootstrapStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AwsCdkBootstrapStepInfo": {
            "title": "AwsCdkBootstrapStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "image"
                ],
                "properties": {
                  "appPath": {
                    "type": "string"
                  },
                  "awsConnectorRef": {
                    "type": "string"
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "region": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "roleArn": {
                    "type": "string"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "image"
            ],
            "properties": {
              "appPath": {
                "type": "string"
              },
              "awsConnectorRef": {
                "type": "string"
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "region": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "roleArn": {
                "type": "string"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AwsCdkBootstrapStepInfo"
              }
            }
          },
          "AwsCdkSynthStepNode": {
            "title": "AwsCdkSynthStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AwsCdkSynthStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AwsCdkSynth"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsCdkSynth"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AwsCdkSynthStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AwsCdkSynthStepInfo": {
            "title": "AwsCdkSynthStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "image"
                ],
                "properties": {
                  "appPath": {
                    "type": "string"
                  },
                  "awsConnectorRef": {
                    "type": "string"
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "exportTemplate": {
                    "type": "boolean"
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "region": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "roleArn": {
                    "type": "string"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "stackNames": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "image"
            ],
            "properties": {
              "appPath": {
                "type": "string"
              },
              "awsConnectorRef": {
                "type": "string"
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "exportTemplate": {
                "type": "boolean"
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "region": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "roleArn": {
                "type": "string"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "stackNames": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AwsCdkSynthStepInfo"
              }
            }
          },
          "AwsCdkDiffStepNode": {
            "title": "AwsCdkDiffStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AwsCdkDiffStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AwsCdkDiff"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsCdkDiff"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AwsCdkDiffStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AwsCdkDiffStepInfo": {
            "title": "AwsCdkDiffStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "image"
                ],
                "properties": {
                  "appPath": {
                    "type": "string"
                  },
                  "awsConnectorRef": {
                    "type": "string"
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "region": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "roleArn": {
                    "type": "string"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "stackNames": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "image"
            ],
            "properties": {
              "appPath": {
                "type": "string"
              },
              "awsConnectorRef": {
                "type": "string"
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "region": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "roleArn": {
                "type": "string"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "stackNames": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AwsCdkDiffStepInfo"
              }
            }
          },
          "AwsCdkDeployStepNode": {
            "title": "AwsCdkDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AwsCdkDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AwsCdkDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsCdkDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AwsCdkDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AwsCdkDeployStepInfo": {
            "title": "AwsCdkDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "image",
                  "provisionerIdentifier"
                ],
                "properties": {
                  "appPath": {
                    "type": "string"
                  },
                  "awsConnectorRef": {
                    "type": "string"
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "parameters": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "provisionerIdentifier": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "roleArn": {
                    "type": "string"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "stackNames": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "image",
              "provisionerIdentifier"
            ],
            "properties": {
              "appPath": {
                "type": "string"
              },
              "awsConnectorRef": {
                "type": "string"
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "parameters": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "provisionerIdentifier": {
                "type": "string"
              },
              "region": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "roleArn": {
                "type": "string"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "stackNames": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AwsCdkDeployStepInfo"
              }
            }
          },
          "AwsCdkDestroyStepNode": {
            "title": "AwsCdkDestroyStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AwsCdkDestroyStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AwsCdkDestroy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsCdkDestroy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AwsCdkDestroyStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AwsCdkDestroyStepInfo": {
            "title": "AwsCdkDestroyStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "image"
                ],
                "properties": {
                  "appPath": {
                    "type": "string"
                  },
                  "awsConnectorRef": {
                    "type": "string"
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "region": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "roleArn": {
                    "type": "string"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "stackNames": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "image"
            ],
            "properties": {
              "appPath": {
                "type": "string"
              },
              "awsConnectorRef": {
                "type": "string"
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "region": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "roleArn": {
                "type": "string"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "stackNames": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AwsCdkDestroyStepInfo"
              }
            }
          },
          "AwsCdkRollbackStepNode": {
            "title": "AwsCdkRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AwsCdkRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AwsCdkRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsCdkRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AwsCdkRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AwsCdkRollbackStepInfo": {
            "title": "AwsCdkRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "provisionerIdentifier"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "provisionerIdentifier": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "provisionerIdentifier"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "provisionerIdentifier": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for AwsCdkRollbackStepInfo"
              }
            }
          },
          "SlsaVerificationStepNode": {
            "title": "SlsaVerificationStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SlsaVerificationStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SlsaVerification"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SlsaVerification"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SlsaVerificationStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SlsaVerificationStepInfo": {
            "title": "SlsaVerificationStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "source": {
                    "$ref": "#/definitions/pipeline/steps/common/SlsaVerificationSource"
                  },
                  "verify_attestation": {
                    "$ref": "#/definitions/pipeline/steps/common/SlsaVerifyAttestation"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "overrideConnectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "source": {
                "$ref": "#/definitions/pipeline/steps/common/SlsaVerificationSource"
              },
              "verify_attestation": {
                "$ref": "#/definitions/pipeline/steps/common/SlsaVerifyAttestation"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "overrideConnectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for SlsaVerificationStepInfo"
              }
            }
          },
          "SlsaVerificationSource": {
            "title": "SlsaVerificationSource",
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Docker",
                  "Gcr",
                  "Ecr",
                  "Acr",
                  "Gar",
                  "Har",
                  "Local"
                ]
              },
              "description": {
                "desc": "This is the description for SlsaVerificationSource"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Docker"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SlsaDockerSourceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Gcr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SlsaGcrSourceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Ecr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SlsaEcrSourceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Acr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SlsaAcrSourceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Gar"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SlsaGarSourceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Har"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SlsaHarSourceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Local"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SlsaVerificationLocalSourceSpec"
                    }
                  }
                }
              }
            ]
          },
          "SlsaDockerSourceSpec": {
            "title": "SlsaDockerSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/SlsaVerificationSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "image_path"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "image_path": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for SlsaDockerSourceSpec"
              }
            }
          },
          "SlsaVerificationSourceSpec": {
            "title": "SlsaVerificationSourceSpec",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for SlsaVerificationSourceSpec"
              }
            }
          },
          "SlsaGcrSourceSpec": {
            "title": "SlsaGcrSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/SlsaVerificationSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "connector",
                  "host",
                  "project_id",
                  "image_name"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "host": {
                    "type": "string"
                  },
                  "project_id": {
                    "type": "string"
                  },
                  "image_name": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "Slsa Gcr source spec"
              }
            }
          },
          "SlsaEcrSourceSpec": {
            "title": "SlsaEcrSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/SlsaVerificationSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "image"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  },
                  "account": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "Slsa Ecr source spec"
              }
            }
          },
          "SlsaAcrSourceSpec": {
            "title": "SlsaAcrSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/SlsaVerificationSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "connector",
                  "image_path"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "image_path": {
                    "type": "string"
                  },
                  "subscription_id": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "Slsa Acr source spec"
              }
            }
          },
          "SlsaGarSourceSpec": {
            "title": "SlsaGarSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/SlsaVerificationSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "connector",
                  "host",
                  "project_id",
                  "image_name"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "host": {
                    "type": "string"
                  },
                  "project_id": {
                    "type": "string"
                  },
                  "image_name": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "Slsa Gar source spec"
              }
            }
          },
          "SlsaHarSourceSpec": {
            "title": "SlsaHarSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/SlsaVerificationSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "registry",
                  "image"
                ],
                "properties": {
                  "registry": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "Slsa Har source spec"
              }
            }
          },
          "SlsaVerificationLocalSourceSpec": {
            "title": "SlsaVerificationLocalSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/SlsaVerificationSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "workspace",
                  "type"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "manual",
                      "auto"
                    ]
                  },
                  "workspace": {
                    "type": "string"
                  },
                  "artifact_name": {
                    "type": "string",
                    "description": "Required when type is manual",
                    "if": {
                      "properties": {
                        "type": {
                          "const": "manual"
                        }
                      }
                    },
                    "then": {
                      "minLength": 1
                    }
                  },
                  "version": {
                    "type": "string",
                    "description": "Required when type is manual",
                    "if": {
                      "properties": {
                        "type": {
                          "const": "manual"
                        }
                      }
                    },
                    "then": {
                      "minLength": 1
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for LocalSourceSpec"
              }
            }
          },
          "DBApplySchemaStepNode": {
            "title": "DBApplySchemaStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for DBApplySchemaStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/DBDevOpsFailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DBSchemaApply"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DBSchemaApply"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/DBApplySchemaStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "DBApplySchemaStepInfo": {
            "title": "DBApplySchemaStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "dbSchema",
                  "dbInstance"
                ],
                "properties": {
                  "dbInstance": {
                    "type": "string"
                  },
                  "dbSchema": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string"
                  },
                  "migrationType": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "globalSettings": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "markNextChangeSetRun": {
                    "type": "boolean"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "description": {
                    "desc": "This is the description for DBApplySchemaStepInfo"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "DBRollbackSchemaStepNode": {
            "title": "DBRollbackSchemaStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for DBRollbackSchemaStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/DBDevOpsFailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DBSchemaRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DBSchemaRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/DBRollbackSchemaStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "DBRollbackSchemaStepInfo": {
            "title": "DBRollbackSchemaStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "dbInstance",
                  "dbSchema"
                ],
                "properties": {
                  "dbInstance": {
                    "type": "string"
                  },
                  "dbSchema": {
                    "type": "string"
                  },
                  "migrationType": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "globalSettings": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1
                  },
                  "changeSetCount": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "description": {
                    "desc": "This is the description for DBRollbackSchemaStepInfo"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "LiquibaseCommandStepNode": {
            "title": "LiquibaseCommandStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for LiquibaseCommandStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/DBDevOpsFailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "LiquibaseCommand"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "LiquibaseCommand"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/LiquibaseCommandStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "LiquibaseCommandStepInfo": {
            "title": "LiquibaseCommandStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "dbSchema",
                  "dbInstance",
                  "command"
                ],
                "properties": {
                  "dbInstance": {
                    "type": "string"
                  },
                  "dbSchema": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "command": {
                    "type": "string"
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "excludeChangeLogFile": {
                    "type": "boolean"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "dbSchema",
              "dbInstance",
              "command"
            ],
            "properties": {
              "dbInstance": {
                "type": "string"
              },
              "dbSchema": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "command": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "excludeChangeLogFile": {
                "type": "boolean"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for LiquibaseCommandStepInfo"
              }
            }
          },
          "AIExperimentStepNode": {
            "title": "AIExperimentStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AIExperimentStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/AIAgentMLOpsFailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AIExperiment"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AIExperiment"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AIExperimentStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AIExperimentStepInfo": {
            "title": "AIExperimentStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "experimentRef",
                  "image",
                  "command"
                ],
                "properties": {
                  "experimentRef": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  },
                  "command": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "experimentRef",
              "image",
              "command"
            ],
            "properties": {
              "experimentRef": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "image": {
                "type": "string"
              },
              "command": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AIExperimentStepInfo"
              }
            }
          },
          "DBOPSTestAndPreviewStepNode": {
            "title": "DBOPSTestAndPreviewStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for DBOPSTestAndPreviewStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/DBDevOpsFailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DBTestAndPreview"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DBTestAndPreview"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/DBOPSTestAndPreviewStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "DBOPSTestAndPreviewStepInfo": {
            "title": "DBOPSTestAndPreviewStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "dbSchema",
                  "changeset"
                ],
                "properties": {
                  "changeset": {
                    "type": "string"
                  },
                  "dbSchema": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "dbSchema",
              "changeset"
            ],
            "properties": {
              "changeset": {
                "type": "string"
              },
              "dbSchema": {
                "type": "string"
              },
              "globalSettings": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "connectorRef": {
                "type": "string"
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for DBOPSTestAndPreviewStepInfo"
              }
            }
          },
          "DBSchemaUpdateSQLNode": {
            "title": "DBSchemaUpdateSQLNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for DBSchemaUpdateSQLNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/DBDevOpsFailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DBSchemaUpdateSQL"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DBSchemaUpdateSQL"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/DBSchemaUpdateSQLInfo"
                    }
                  }
                }
              }
            ]
          },
          "DBSchemaUpdateSQLInfo": {
            "title": "DBSchemaUpdateSQLInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "dbSchema",
                  "dbInstance"
                ],
                "properties": {
                  "dbInstance": {
                    "type": "string"
                  },
                  "dbSchema": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "globalSettings": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "dbSchema",
              "dbInstance"
            ],
            "properties": {
              "dbInstance": {
                "type": "string"
              },
              "dbSchema": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for DBSchemaUpdateSQLInfo"
              }
            }
          },
          "DBSchemaRollbackSQLNode": {
            "title": "DBSchemaRollbackSQLNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for DBSchemaRollbackSQLNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/DBDevOpsFailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DBSchemaRollbackSQL"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DBSchemaRollbackSQL"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/DBSchemaRollbackSQLInfo"
                    }
                  }
                }
              }
            ]
          },
          "DBSchemaRollbackSQLInfo": {
            "title": "DBSchemaRollbackSQLInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "dbInstance",
                  "dbSchema"
                ],
                "oneOf": [
                  {
                    "required": [
                      "tag"
                    ],
                    "not": {
                      "required": [
                        "changeSetCount"
                      ]
                    }
                  },
                  {
                    "required": [
                      "changeSetCount"
                    ],
                    "not": {
                      "required": [
                        "tag"
                      ]
                    }
                  }
                ],
                "properties": {
                  "dbInstance": {
                    "type": "string"
                  },
                  "dbSchema": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "globalSettings": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1
                  },
                  "changeSetCount": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "dbInstance",
              "dbSchema"
            ],
            "oneOf": [
              {
                "required": [
                  "tag"
                ],
                "not": {
                  "required": [
                    "changeSetCount"
                  ]
                }
              },
              {
                "required": [
                  "changeSetCount"
                ],
                "not": {
                  "required": [
                    "tag"
                  ]
                }
              }
            ],
            "properties": {
              "dbInstance": {
                "type": "string"
              },
              "dbSchema": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "tag": {
                "type": "string",
                "minLength": 1
              },
              "changeSetCount": {
                "type": "integer",
                "minimum": 1
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for DBSchemaRollbackSQLInfo"
              }
            }
          },
          "FlywayCommandStepNode": {
            "title": "FlywayCommandStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FlywayCommandStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/DBDevOpsFailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FlywayCommand"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FlywayCommand"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/FlywayCommandStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FlywayCommandStepInfo": {
            "title": "FlywayCommandStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "dbSchema",
                  "dbInstance",
                  "command"
                ],
                "properties": {
                  "dbInstance": {
                    "type": "string"
                  },
                  "dbSchema": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "globalSettings": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  "command": {
                    "type": "string"
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "description": {
                    "desc": "This is the description for FlywayCommandStepInfo"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "fme-flag-common-flag-name": {
            "title": "fme-flag-common-flag-name",
            "type": "string",
            "description": "Feature flag name",
            "pattern": "^[a-zA-Z][-_a-zA-Z0-9]*$",
            "minLength": 1,
            "maxLength": 100
          },
          "fme-flag-common-treatments": {
            "title": "fme-flag-common-treatments",
            "type": "string",
            "description": "FME Treatment Name",
            "pattern": "^[a-zA-Z0-9][-_\\.a-zA-Z0-9]*$"
          },
          "common-jexl-expression-only": {
            "title": "common-jexl-expression-only",
            "description": "JEXL expression that excludes runtime input.\n\nThis schema allows JEXL expressions like <+pipeline.variables.x>, <+stage.variables.y>, etc.\nbut explicitly excludes runtime input patterns:\n- <+input>\n- <+input>.allowedValues(...)\n- <+input>.default(...)\n- <+input>.executionInput()\n- <+input>.regex(...)\n- <+input>.selectOneFrom(...)\n- <+input>.selectManyFrom(...)\n\nUse this when a field should support expressions but NOT runtime input.\n",
            "type": "string",
            "allOf": [
              {
                "pattern": "^<\\+.+>.*$"
              },
              {
                "not": {
                  "pattern": "^<\\+input>.*$"
                }
              }
            ]
          },
          "fme-segment-common-segment-name": {
            "title": "fme-segment-common-segment-name",
            "type": "string",
            "description": "Segment name",
            "pattern": "^[a-zA-Z][-_a-zA-Z0-9]*$",
            "minLength": 1,
            "maxLength": 100
          },
          "fme-flag-common-environment": {
            "title": "fme-flag-common-environment",
            "type": "string",
            "description": "FME Environment Name or ID",
            "minLength": 1,
            "maxLength": 100,
            "not": {
              "pattern": "^<\\+.*>.*$"
            }
          },
          "fme-flagset-common-flagset-name": {
            "title": "fme-flagset-common-flagset-name",
            "type": "string",
            "description": "Flag set name",
            "pattern": "^[a-zA-Z][-_a-zA-Z0-9]*$",
            "minLength": 1,
            "maxLength": 100
          },
          "AnchoreScanNode": {
            "title": "AnchoreScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AnchoreScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Anchore"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Anchore"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AnchoreStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AquaSecurityScanNode": {
            "title": "AquaSecurityScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AquaSecurityScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AquaSecurity"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AquaSecurity"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AquaSecurityStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AquaTrivyScanNode": {
            "title": "AquaTrivyScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AquaTrivyScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AquaTrivy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AquaTrivy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AquaTrivyStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AwsEcrScanNode": {
            "title": "AwsEcrScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AwsEcrScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AWSECR"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AWSECR"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AwsEcrStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AwsSecurityHubScanNode": {
            "title": "AwsSecurityHubScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AwsSecurityHubScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AWSSecurityHub"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AWSSecurityHub"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/AwsSecurityHubStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "BanditScanNode": {
            "title": "BanditScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for BanditScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Bandit"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Bandit"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/BanditStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "BlackDuckScanNode": {
            "title": "BlackDuckScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for BlackDuckScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "BlackDuck"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "BlackDuck"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/BlackDuckStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "BrakemanScanNode": {
            "title": "BrakemanScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for BrakemanScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Brakeman"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Brakeman"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/BrakemanStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "BurpScanNode": {
            "title": "BurpScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for BurpScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Burp"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Burp"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/BurpStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "CheckmarxScanNode": {
            "title": "CheckmarxScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for CheckmarxScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Checkmarx"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Checkmarx"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/CheckmarxStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "CheckmarxOneScanNode": {
            "title": "CheckmarxOneScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for CheckmarxOneScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CheckmarxOne"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CheckmarxOne"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/CheckmarxOneStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ClairScanNode": {
            "title": "ClairScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ClairScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Clair"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Clair"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ClairStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "CodeqlScanNode": {
            "title": "CodeqlScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for CodeqlScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CodeQL"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CodeQL"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/CodeqlStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "CoverityScanNode": {
            "title": "CoverityScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for CoverityScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_][-0-9a-zA-Z_\\s]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Coverity"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Coverity"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/CoverityStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "CoverityStepInfo": {
            "title": "CoverityStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/common/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/common/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for CoverityStepInfo"
              }
            }
          },
          "DataTheoremScanNode": {
            "title": "DataTheoremScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for DataTheoremScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DataTheorem"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DataTheorem"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/DataTheoremStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "DockerContentTrustScanNode": {
            "title": "DockerContentTrustScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for DockerContentTrustScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DockerContentTrust"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DockerContentTrust"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/DockerContentTrustStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FortifyOnDemandScanNode": {
            "title": "FortifyOnDemandScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FortifyOnDemandScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FortifyOnDemand"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FortifyOnDemand"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/FortifyOnDemandStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FossaScanNode": {
            "title": "FossaScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FossaScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Fossa"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Fossa"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/FossaStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GitHubAdvancedSecurityScanNode": {
            "title": "GitHubAdvancedSecurityScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GitHubAdvancedSecurityScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GitHubAdvancedSecurity"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GitHubAdvancedSecurity"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/GitHubAdvancedSecurityStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GitleaksScanNode": {
            "title": "GitleaksScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GitleaksScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Gitleaks"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Gitleaks"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/GitleaksStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GrypeScanNode": {
            "title": "GrypeScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GrypeScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Grype"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Grype"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/GrypeStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "JfrogXrayScanNode": {
            "title": "JfrogXrayScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for JfrogXrayScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "JfrogXray"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "JfrogXray"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/JfrogXrayStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "MendScanNode": {
            "title": "MendScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for MendScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Mend"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Mend"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/MendStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "MetasploitScanNode": {
            "title": "MetasploitScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for MetasploitScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Metasploit"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Metasploit"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/MetasploitStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "NessusScanNode": {
            "title": "NessusScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for NessusScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Nessus"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Nessus"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/NessusStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "NexusIQScanNode": {
            "title": "NexusIQScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for NexusIQScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "NexusIQ"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "NexusIQ"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/NexusIQStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "NiktoScanNode": {
            "title": "NiktoScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for NiktoScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Nikto"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Nikto"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/NiktoStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "NmapScanNode": {
            "title": "NmapScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for NmapScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Nmap"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Nmap"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/NmapStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "OpenvasScanNode": {
            "title": "OpenvasScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for OpenvasScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Openvas"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Openvas"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/OpenvasStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "OsvScannerScanNode": {
            "title": "OsvScannerScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for OsvScannerScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "OsvScanner"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "OsvScanner"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/OsvScannerStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "OwaspScanNode": {
            "title": "OwaspScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for OwaspScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Owasp"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Owasp"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/OwaspStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "PrismaCloudScanNode": {
            "title": "PrismaCloudScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for PrismaCloudScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "PrismaCloud"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "PrismaCloud"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/PrismaCloudStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ProwlerScanNode": {
            "title": "ProwlerScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ProwlerScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Prowler"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Prowler"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ProwlerStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "QualysScanNode": {
            "title": "QualysScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for QualysScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Qualys"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Qualys"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/QualysStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ReapsawScanNode": {
            "title": "ReapsawScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ReapsawScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Reapsaw"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Reapsaw"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ReapsawStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SemgrepScanNode": {
            "title": "SemgrepScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SemgrepScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Semgrep"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Semgrep"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SemgrepStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ShiftLeftScanNode": {
            "title": "ShiftLeftScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ShiftLeftScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ShiftLeft"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ShiftLeft"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ShiftLeftStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SniperScanNode": {
            "title": "SniperScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SniperScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Sniper"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Sniper"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SniperStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SonarqubeScanNode": {
            "title": "SonarqubeScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SonarqubeScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Sonarqube"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Sonarqube"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SonarqubeStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SysdigScanNode": {
            "title": "SysdigScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SysdigScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Sysdig"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Sysdig"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SysdigStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TenableScanNode": {
            "title": "TenableScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TenableScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Tenable"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Tenable"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/TenableStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TraceableScanNode": {
            "title": "TraceableScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TraceableScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Traceable"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Traceable"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/TraceableStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "VeracodeScanNode": {
            "title": "VeracodeScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for VeracodeScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Veracode"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Veracode"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/VeracodeStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ZapScanNode": {
            "title": "ZapScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ZapScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Zap"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Zap"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ZapStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "CortexCloudScanNode": {
            "title": "CortexCloudScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for CortexCloudScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CortexCloud"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CortexCloud"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/CortexCloudStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "CortexCloudStepInfo": {
            "title": "CortexCloudStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "auth": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "image": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "auth": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAuth"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "image": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlImage"
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for CortexCloudStepInfo"
              }
            }
          },
          "ModelScanNode": {
            "title": "ModelScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ModelScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ModelScan"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ModelScan"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ModelScanStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SscaComplianceStepNode": {
            "title": "SscaComplianceStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SscaComplianceStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SscaCompliance"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SscaCompliance"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SscaComplianceStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SscaComplianceStepInfo": {
            "title": "SscaComplianceStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "source"
                ],
                "properties": {
                  "description": {
                    "desc": "This is the description for SscaComplianceStepInfo"
                  },
                  "source": {
                    "$ref": "#/definitions/pipeline/steps/custom/SscaComplianceSource"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "overrideConnectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "source"
            ],
            "properties": {
              "description": {
                "desc": "This is the description for SscaComplianceStepInfo"
              },
              "source": {
                "$ref": "#/definitions/pipeline/steps/custom/SscaComplianceSource"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "overrideConnectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              }
            }
          },
          "ArtifactSigningStepNode": {
            "title": "ArtifactSigningStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ArtifactSigningStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SscaArtifactSigning"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SscaArtifactSigning"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ArtifactSigningStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ArtifactSigningStepInfo": {
            "title": "ArtifactSigningStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "if": {
                  "properties": {
                    "source": {
                      "properties": {
                        "type": {
                          "enum": [
                            "ecr",
                            "docker",
                            "gar",
                            "gcr",
                            "acr",
                            "har",
                            "local"
                          ]
                        }
                      }
                    }
                  }
                },
                "then": {
                  "properties": {
                    "signing": {
                      "$ref": "#/definitions/pipeline/steps/common/AttestationV1"
                    }
                  }
                }
              }
            ],
            "additonalProperties": false,
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "source": {
                "$ref": "#/definitions/pipeline/steps/common/ArtifactSigningSource"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "uploadSignature": {
                "$ref": "#/definitions/pipeline/steps/common/UploadSignature"
              },
              "overrideConnectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for ArtifactSigningStepInfo"
              }
            }
          },
          "AttestationV1": {
            "title": "AttestationV1",
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "cosign",
                  "keyless",
                  "keybased",
                  "secret-manager"
                ]
              },
              "description": {
                "desc": "This is the description for ProvenanceAttestation"
              },
              "spec": {
                "type": "object"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "cosign"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "type": "object",
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/steps/common/CosignAttestation"
                        },
                        {
                          "$ref": "#/definitions/pipeline/steps/common/CosignSecretManagerProvenanceAttestation"
                        }
                      ]
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "keyless"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "type": "object",
                      "$ref": "#/definitions/pipeline/steps/common/KeylessProvenanceAttestation"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "keybased"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "type": "object",
                      "$ref": "#/definitions/pipeline/steps/common/CosignAttestation"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "secret-manager"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "type": "object",
                      "$ref": "#/definitions/pipeline/steps/common/CosignSecretManagerProvenanceAttestation"
                    }
                  }
                }
              }
            ],
            "additionalProperties": false
          },
          "CosignAttestation": {
            "title": "CosignAttestation",
            "type": "object",
            "required": [
              "private_key",
              "password"
            ],
            "properties": {
              "private_key": {
                "type": "string"
              },
              "password": {
                "type": "string"
              },
              "description": {
                "type": "string",
                "description": "This is the description for CosignAttestation"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "$ref": "#/definitions/pipeline/steps/common/AttestationSpecV1"
          },
          "AttestationSpecV1": {
            "title": "AttestationSpecV1",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ProvenanceAttestationSpec"
              }
            }
          },
          "CosignSecretManagerProvenanceAttestation": {
            "title": "CosignSecretManagerProvenanceAttestation",
            "type": "object",
            "required": [
              "connector",
              "key"
            ],
            "properties": {
              "connector": {
                "type": "string"
              },
              "key": {
                "type": "string"
              },
              "description": {
                "type": "string",
                "description": "This is the description for Cosign Provenance Attestation with Secret Manager"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "$ref": "#/definitions/pipeline/steps/common/AttestationSpecV1"
          },
          "KeylessProvenanceAttestation": {
            "title": "KeylessProvenanceAttestation",
            "type": "object",
            "properties": {
              "oidcProvider": {
                "type": "string",
                "enum": [
                  "harness",
                  "non-harness"
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false
          },
          "UploadSignature": {
            "title": "UploadSignature",
            "type": "object",
            "properties": {
              "upload": {
                "type": "boolean",
                "description": "Enable or disable to upload signature to the registry"
              }
            }
          },
          "SastScanNode": {
            "title": "SastScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SastScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "HarnessSAST"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HarnessSAST"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/SastStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SastStepInfo": {
            "title": "SastStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "default",
                          "sast",
                          "sca",
                          "sast_sca"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlShiftLeftToolData"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "default",
                      "sast",
                      "sca",
                      "sast_sca"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for SastStepInfo"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlShiftLeftToolData"
              }
            }
          },
          "ScaScanNode": {
            "title": "ScaScanNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ScaScanNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "HarnessSCA"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HarnessSCA"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ScaStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ScaStepInfo": {
            "title": "ScaStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "config",
                  "mode",
                  "target"
                ],
                "properties": {
                  "advanced": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "config": {
                    "type": "string",
                    "enum": [
                      "default"
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "imageTag": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ingestion": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
                  },
                  "mode": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ingestion",
                          "orchestration",
                          "extraction"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "settings": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
                  },
                  "tool": {
                    "$ref": "#/definitions/pipeline/steps/common/STOYamlShiftLeftToolData"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "config",
              "mode",
              "target"
            ],
            "properties": {
              "advanced": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlAdvancedSettings"
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "config": {
                "type": "string",
                "enum": [
                  "default"
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ingestion": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlIngestion"
              },
              "mode": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ingestion",
                      "orchestration",
                      "extraction"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlTarget"
              },
              "description": {
                "desc": "This is the description for ScaStepInfo"
              },
              "tool": {
                "$ref": "#/definitions/pipeline/steps/common/STOYamlShiftLeftToolData"
              }
            }
          },
          "ProvenanceStepNode": {
            "title": "ProvenanceStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ProvenanceStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "provenance"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "provenance"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ProvenanceStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ProvenanceStepInfo": {
            "title": "ProvenanceStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "if": {
                  "properties": {
                    "source": {
                      "properties": {
                        "type": {
                          "enum": [
                            "ecr",
                            "docker",
                            "gar",
                            "gcr",
                            "acr",
                            "har",
                            "local"
                          ]
                        }
                      }
                    }
                  }
                },
                "then": {
                  "properties": {
                    "attestation": {
                      "$ref": "#/definitions/pipeline/steps/common/AttestationV1"
                    }
                  }
                }
              }
            ],
            "additonalProperties": false,
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "source": {
                "$ref": "#/definitions/pipeline/steps/common/ProvenanceSource"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "overrideConnectorRef": {
                "type": "string"
              },
              "imageTag": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for SlsaGenerationStepInfo"
              }
            }
          },
          "ProvenanceSource": {
            "title": "ProvenanceSource",
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "docker",
                  "gcr",
                  "ecr",
                  "acr",
                  "gar",
                  "har",
                  "local"
                ]
              },
              "description": {
                "desc": "This is the description for SlsaGenerationSource"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "docker"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ProvenanceDockerSourceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "gcr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ProvenanceGcrSourceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ecr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ProvenanceEcrSourceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "acr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ProvenanceAcrSourceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "gar"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ProvenanceGarSourceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "har"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ProvenanceHarSourceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "local"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/common/ProvenanceLocalSourceSpec"
                    }
                  }
                }
              }
            ]
          },
          "ProvenanceDockerSourceSpec": {
            "title": "ProvenanceDockerSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/ProvenanceSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "repo",
                  "connector"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "repo": {
                    "type": "string"
                  },
                  "digest": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for DockerSourceSpec"
              }
            }
          },
          "ProvenanceSourceSpec": {
            "title": "ProvenanceSourceSpec",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ProvenanceSourceSpec"
              }
            }
          },
          "ProvenanceGcrSourceSpec": {
            "title": "ProvenanceGcrSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/ProvenanceSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "connector",
                  "host",
                  "projectID",
                  "imageName"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "host": {
                    "type": "string"
                  },
                  "projectID": {
                    "type": "string"
                  },
                  "imageName": {
                    "type": "string"
                  },
                  "digest": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "Gcr source spec"
              }
            }
          },
          "ProvenanceEcrSourceSpec": {
            "title": "ProvenanceEcrSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/ProvenanceSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "image",
                  "connector"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  },
                  "account": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  },
                  "digest": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "Ecr source spec"
              }
            }
          },
          "ProvenanceAcrSourceSpec": {
            "title": "ProvenanceAcrSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/ProvenanceSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "connector",
                  "repository"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "repository": {
                    "type": "string"
                  },
                  "subscriptionId": {
                    "type": "string"
                  },
                  "digest": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "Acr source spec"
              }
            }
          },
          "ProvenanceGarSourceSpec": {
            "title": "ProvenanceGarSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/ProvenanceSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "connector",
                  "host",
                  "projectID",
                  "imageName"
                ],
                "properties": {
                  "connector": {
                    "type": "string"
                  },
                  "host": {
                    "type": "string"
                  },
                  "projectID": {
                    "type": "string"
                  },
                  "imageName": {
                    "type": "string"
                  },
                  "digest": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "Gar source spec"
              }
            }
          },
          "ProvenanceHarSourceSpec": {
            "title": "ProvenanceHarSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/ProvenanceSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "registry",
                  "image"
                ],
                "properties": {
                  "registry": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  },
                  "digest": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "Harness Artifact Registry source spec"
              }
            }
          },
          "ProvenanceLocalSourceSpec": {
            "title": "ProvenanceLocalSourceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/ProvenanceSourceSpec"
              },
              {
                "type": "object",
                "required": [
                  "workspace",
                  "type"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "manual",
                      "auto"
                    ]
                  },
                  "workspace": {
                    "type": "string"
                  },
                  "artifact_name": {
                    "type": "string",
                    "description": "Required when type is manual",
                    "if": {
                      "properties": {
                        "type": {
                          "const": "manual"
                        }
                      }
                    },
                    "then": {
                      "minLength": 1
                    }
                  },
                  "version": {
                    "type": "string",
                    "description": "Required when type is manual",
                    "if": {
                      "properties": {
                        "type": {
                          "const": "manual"
                        }
                      }
                    },
                    "then": {
                      "minLength": 1
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ProvenanceLocalSourceSpec"
              }
            }
          }
        },
        "ci": {
          "CIStepInfo": {
            "title": "CIStepInfo",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CIStepInfo"
              }
            }
          },
          "GitCloneStepNode": {
            "title": "GitCloneStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GitCloneStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GitClone"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GitClone"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/GitCloneStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GitCloneStepInfo": {
            "title": "GitCloneStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "build"
                ],
                "properties": {
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "build": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/ci/Build"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "cloneDirectory": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "depth": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputFilePathsContent": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "projectName": {
                    "type": "string"
                  },
                  "repoName": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "sslVerify": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "lfs": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "debug": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "fetchTags": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "sparseCheckout": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "submoduleStrategy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "true",
                          "false",
                          "recursive"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "preFetchCommand": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "build"
            ],
            "properties": {
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "build": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/Build"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "cloneDirectory": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "depth": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "outputFilePathsContent": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "projectName": {
                "type": "string"
              },
              "repoName": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "sslVerify": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "lfs": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "debug": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "fetchTags": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "sparseCheckout": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "submoduleStrategy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "true",
                      "false",
                      "recursive"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "preFetchCommand": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for GitCloneStepInfo"
              }
            }
          },
          "ParameterFieldListString": {
            "title": "ParameterFieldListString",
            "type": "object",
            "properties": {
              "defaultValue": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "executionInput": {
                "type": "boolean"
              },
              "expression": {
                "type": "boolean"
              },
              "expressionValue": {
                "type": "string"
              },
              "inputSetValidator": {
                "$ref": "#/definitions/pipeline/common/InputSetValidator"
              },
              "jsonResponseField": {
                "type": "boolean"
              },
              "responseField": {
                "type": "string"
              },
              "typeString": {
                "type": "boolean"
              },
              "value": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "description": {
                "desc": "This is the description for ParameterFieldListString"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "Build": {
            "title": "Build",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "branch",
                  "tag",
                  "PR",
                  "commitSha"
                ]
              },
              "description": {
                "desc": "This is the description for Build"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "PR"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/PRBuildSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "branch"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/BranchBuildSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "commitSha"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/CommitShaBuildSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "tag"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/TagBuildSpec"
                    }
                  }
                }
              }
            ]
          },
          "PRBuildSpec": {
            "title": "PRBuildSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/BuildSpec"
              },
              {
                "type": "object",
                "required": [
                  "number"
                ],
                "properties": {
                  "number": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for PRBuildSpec"
              }
            }
          },
          "BuildSpec": {
            "title": "BuildSpec",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for BuildSpec"
              }
            }
          },
          "BranchBuildSpec": {
            "title": "BranchBuildSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/BuildSpec"
              },
              {
                "type": "object",
                "required": [
                  "branch"
                ],
                "properties": {
                  "branch": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for BranchBuildSpec"
              }
            }
          },
          "CommitShaBuildSpec": {
            "title": "CommitShaBuildSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/BuildSpec"
              },
              {
                "type": "object",
                "required": [
                  "commitSha"
                ],
                "properties": {
                  "commitSha": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CommitShaBuildSpec"
              }
            }
          },
          "TagBuildSpec": {
            "title": "TagBuildSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/BuildSpec"
              },
              {
                "type": "object",
                "required": [
                  "tag"
                ],
                "properties": {
                  "tag": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TagBuildSpec"
              }
            }
          },
          "AiEvalsRunStepNode": {
            "title": "AiEvalsRunStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AiEvalsRunStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AiEvalsRun"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AiEvalsRun"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/AiEvalsRunStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AiEvalsRunStepInfo": {
            "title": "AiEvalsRunStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "apiKey"
                ],
                "properties": {
                  "evalId": {
                    "description": "Eval identifier to run (creates a new run automatically)",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "suiteId": {
                    "description": "Suite identifier to run (creates a new suite run automatically)",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "suitePath": {
                    "description": "Path to a suite.yaml file on disk (skips API fetch mode)",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "runId": {
                    "description": "Pre-created eval run ID to execute",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "suiteRunId": {
                    "description": "Pre-created suite run ID to execute",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "apiKey": {
                    "description": "Harness API key secret reference for authentication",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "apiEndpoint": {
                    "description": "AI Evals API base URL",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "concurrency": {
                    "description": "Maximum number of concurrent dataset items to process",
                    "oneOf": [
                      {
                        "type": "integer",
                        "minimum": 1
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "repoFlags": {
                    "description": "Repository mappings as comma-separated NAME=PATH pairs",
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "evalId": {
                "description": "Eval identifier to run (creates a new run automatically)",
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "suiteId": {
                "description": "Suite identifier to run (creates a new suite run automatically)",
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "suitePath": {
                "description": "Path to a suite.yaml file on disk (skips API fetch mode)",
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "runId": {
                "description": "Pre-created eval run ID to execute",
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "suiteRunId": {
                "description": "Pre-created suite run ID to execute",
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "apiKey": {
                "description": "Harness API key secret reference for authentication",
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "apiEndpoint": {
                "description": "AI Evals API base URL",
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "concurrency": {
                "description": "Maximum number of concurrent dataset items to process",
                "oneOf": [
                  {
                    "type": "integer",
                    "minimum": 1
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "repoFlags": {
                "description": "Repository mappings as comma-separated NAME=PATH pairs",
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/string-without-jexl"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AiEvalsRunStepInfo"
              }
            }
          },
          "S3UploadNode": {
            "title": "S3UploadNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for S3UploadNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "S3Upload"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "S3Upload"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/UploadToS3StepInfo"
                    }
                  }
                }
              }
            ]
          },
          "UploadToS3StepInfo": {
            "title": "UploadToS3StepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "bucket",
                  "connectorRef",
                  "region",
                  "sourcePath"
                ],
                "properties": {
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "bucket": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "endpoint": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "sourcePath": {
                    "type": "string"
                  },
                  "stripPrefix": {
                    "type": "string"
                  },
                  "target": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "bucket",
              "connectorRef",
              "region",
              "sourcePath"
            ],
            "properties": {
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "bucket": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "endpoint": {
                "type": "string"
              },
              "region": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "sourcePath": {
                "type": "string"
              },
              "stripPrefix": {
                "type": "string"
              },
              "target": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for UploadToS3StepInfo"
              }
            }
          },
          "AiTestAutomationStepNode": {
            "title": "AiTestAutomationStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AiTestAutomationStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AiTestAutomation"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AiTestAutomation"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/AiTestAutomationStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AiTestAutomationStepInfo": {
            "title": "AiTestAutomationStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "applicationName"
                ],
                "properties": {
                  "testType": {
                    "type": "string",
                    "enum": [
                      "aiTestAutomation",
                      "playwright"
                    ],
                    "description": "Type of test: aiTestAutomation (default) or playwright"
                  },
                  "applicationName": {
                    "type": "string",
                    "description": "Name of the application to test"
                  },
                  "environmentName": {
                    "type": "string",
                    "description": "Name of the environment where test will be executed"
                  },
                  "testSuiteName": {
                    "type": "string",
                    "description": "Name of the test suite to execute"
                  },
                  "tunnelName": {
                    "type": "string",
                    "description": "Name of the tunnel to use"
                  },
                  "buildId": {
                    "type": "string",
                    "description": "ID of the Playwright build to execute"
                  },
                  "executionAliasId": {
                    "type": "string",
                    "description": "Execution alias ID for variable resolution"
                  },
                  "configOverride": {
                    "type": "string",
                    "description": "Configuration override as JSON string"
                  },
                  "variables": {
                    "type": "array",
                    "description": "Per-execution variable overrides (variable_scope='build_run', highest precedence)",
                    "items": {
                      "type": "object",
                      "required": [
                        "key",
                        "valueType"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "Variable identifier (carried back from the alias defaults)"
                        },
                        "key": {
                          "type": "string",
                          "description": "Variable key"
                        },
                        "value": {
                          "type": "string",
                          "description": "Variable value (literal string for string, secret reference for secret)"
                        },
                        "valueType": {
                          "type": "string",
                          "enum": [
                            "string",
                            "secret"
                          ],
                          "description": "Variable value type"
                        }
                      }
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "applicationName"
            ],
            "properties": {
              "testType": {
                "type": "string",
                "enum": [
                  "aiTestAutomation",
                  "playwright"
                ],
                "description": "Type of test: aiTestAutomation (default) or playwright"
              },
              "applicationName": {
                "type": "string",
                "description": "Name of the application to test"
              },
              "environmentName": {
                "type": "string",
                "description": "Name of the environment where test will be executed"
              },
              "testSuiteName": {
                "type": "string",
                "description": "Name of the test suite to execute"
              },
              "tunnelName": {
                "type": "string",
                "description": "Name of the tunnel to use"
              },
              "buildId": {
                "type": "string",
                "description": "ID of the Playwright build to execute"
              },
              "executionAliasId": {
                "type": "string",
                "description": "Execution alias ID for variable resolution"
              },
              "configOverride": {
                "type": "string",
                "description": "Configuration override as JSON string"
              },
              "variables": {
                "type": "array",
                "description": "Per-execution variable overrides (variable_scope='build_run', highest precedence)",
                "items": {
                  "type": "object",
                  "required": [
                    "key",
                    "valueType"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Variable identifier (carried back from the alias defaults)"
                    },
                    "key": {
                      "type": "string",
                      "description": "Variable key"
                    },
                    "value": {
                      "type": "string",
                      "description": "Variable value (literal string for string, secret reference for secret)"
                    },
                    "valueType": {
                      "type": "string",
                      "enum": [
                        "string",
                        "secret"
                      ],
                      "description": "Variable value type"
                    }
                  }
                }
              },
              "description": {
                "desc": "This is the description for AiTestAutomationStepInfo"
              }
            }
          },
          "ArtifactoryUploadNode": {
            "title": "ArtifactoryUploadNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ArtifactoryUploadNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ArtifactoryUpload"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ArtifactoryUpload"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/UploadToArtifactoryStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "UploadToArtifactoryStepInfo": {
            "title": "UploadToArtifactoryStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "sourcePath",
                  "target"
                ],
                "properties": {
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "sourcePath": {
                    "type": "string"
                  },
                  "target": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "sourcePath",
              "target"
            ],
            "properties": {
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "connectorRef": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "sourcePath": {
                "type": "string"
              },
              "target": {
                "type": "string"
              },
              "uploadAsFlat": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ],
                "default": true
              },
              "description": {
                "desc": "This is the description for UploadToArtifactoryStepInfo"
              }
            }
          },
          "HarUploadNode": {
            "title": "HarUploadNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for HarUploadNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "HarUpload"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HarUpload"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/UploadToHarStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "UploadToHarStepInfo": {
            "title": "UploadToHarStepInfo",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "registryRef",
              "packageType",
              "sourcePath"
            ],
            "properties": {
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "registryRef": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "sourcePath": {
                "type": "string"
              },
              "target": {
                "type": "string"
              },
              "packageName": {
                "type": "string"
              },
              "packageVersion": {
                "type": "string"
              },
              "packageType": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "CARGO",
                      "GENERIC",
                      "GO",
                      "MAVEN",
                      "NPM",
                      "NUGET",
                      "PYTHON",
                      "RPM",
                      "DART",
                      "CONDA",
                      "COMPOSER",
                      "HUGGINGFACE"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "settings": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for UploadToHarStepInfo"
              }
            }
          },
          "BitriseStepNode": {
            "title": "BitriseStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for BitriseStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Bitrise"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Bitrise"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/BitriseStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "BitriseStepInfo": {
            "title": "BitriseStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "uses"
                ],
                "properties": {
                  "env": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/ParameterFieldMapStringString"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "uses": {
                    "type": "string"
                  },
                  "with": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/ParameterFieldMapStringString"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "uses"
            ],
            "properties": {
              "env": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ParameterFieldMapStringString"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "uses": {
                "type": "string"
              },
              "with": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ParameterFieldMapStringString"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for BitriseStepInfo"
              }
            }
          },
          "BuildAndPushACRNode": {
            "title": "BuildAndPushACRNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for BuildAndPushACRNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "BuildAndPushACR"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "BuildAndPushACR"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/ACRStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ACRStepInfo": {
            "title": "ACRStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "repository",
                  "tags"
                ],
                "properties": {
                  "baseImageConnectorRefs": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "buildArgs": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "context": {
                    "type": "string"
                  },
                  "dockerfile": {
                    "type": "string"
                  },
                  "envDockerSecrets": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "fileDockerSecrets": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "labels": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "optimize": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "remoteCacheImage": {
                    "type": "string"
                  },
                  "repository": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "subscriptionId": {
                    "type": "string"
                  },
                  "tags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "repository",
              "tags"
            ],
            "properties": {
              "baseImageConnectorRefs": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "buildArgs": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "context": {
                "type": "string"
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "dockerfile": {
                "type": "string"
              },
              "labels": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "optimize": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "remoteCacheImage": {
                "type": "string"
              },
              "repository": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "subscriptionId": {
                "type": "string"
              },
              "tags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ACRStepInfo"
              }
            }
          },
          "BuildAndPushDockerNode": {
            "title": "BuildAndPushDockerNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for BuildAndPushDockerNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "BuildAndPushDockerRegistry"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "BuildAndPushDockerRegistry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/DockerStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "DockerStepInfo": {
            "title": "DockerStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "oneOf": [
                  {
                    "required": [
                      "connectorRef",
                      "repo",
                      "tags"
                    ]
                  },
                  {
                    "required": [
                      "registryRef",
                      "repo",
                      "tags"
                    ]
                  }
                ],
                "properties": {
                  "baseImageConnectorRefs": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "buildArgs": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "cacheFrom": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "cacheTo": {
                    "type": "string"
                  },
                  "caching": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "registryRef": {
                    "type": "string"
                  },
                  "context": {
                    "type": "string"
                  },
                  "dockerfile": {
                    "type": "string"
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "envDockerSecrets": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "fileDockerSecrets": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "labels": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "optimize": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "remoteCacheRepo": {
                    "type": "string"
                  },
                  "repo": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "tags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "oneOf": [
              {
                "required": [
                  "connectorRef",
                  "repo",
                  "tags"
                ]
              },
              {
                "required": [
                  "registryRef",
                  "repo",
                  "tags"
                ]
              }
            ],
            "properties": {
              "baseImageConnectorRefs": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "buildArgs": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "cacheFrom": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "cacheTo": {
                "type": "string"
              },
              "caching": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "context": {
                "type": "string"
              },
              "dockerfile": {
                "type": "string"
              },
              "labels": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "optimize": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "remoteCacheRepo": {
                "type": "string"
              },
              "repo": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "tags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for DockerStepInfo"
              }
            }
          },
          "BuildAndPushECRNode": {
            "title": "BuildAndPushECRNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for BuildAndPushECRNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "BuildAndPushECR"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "BuildAndPushECR"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/ECRStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ECRStepInfo": {
            "title": "ECRStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "account",
                  "connectorRef",
                  "imageName",
                  "region",
                  "tags"
                ],
                "properties": {
                  "account": {
                    "type": "string"
                  },
                  "baseImageConnectorRefs": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "buildArgs": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "cacheFrom": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "cacheTo": {
                    "type": "string"
                  },
                  "caching": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "context": {
                    "type": "string"
                  },
                  "dockerfile": {
                    "type": "string"
                  },
                  "imageName": {
                    "type": "string"
                  },
                  "envDockerSecrets": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "fileDockerSecrets": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "labels": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "optimize": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "region": {
                    "type": "string"
                  },
                  "remoteCacheImage": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "tags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "account",
              "connectorRef",
              "imageName",
              "region",
              "tags"
            ],
            "properties": {
              "account": {
                "type": "string"
              },
              "baseImageConnectorRefs": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "buildArgs": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "cacheFrom": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "cacheTo": {
                "type": "string"
              },
              "caching": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "context": {
                "type": "string"
              },
              "dockerfile": {
                "type": "string"
              },
              "imageName": {
                "type": "string"
              },
              "labels": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "optimize": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "region": {
                "type": "string"
              },
              "remoteCacheImage": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "tags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ECRStepInfo"
              }
            }
          },
          "BuildAndPushGCRNode": {
            "title": "BuildAndPushGCRNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for BuildAndPushGCRNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "BuildAndPushGCR"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "BuildAndPushGCR"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/GCRStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GCRStepInfo": {
            "title": "GCRStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "host",
                  "imageName",
                  "projectID",
                  "tags"
                ],
                "properties": {
                  "baseImageConnectorRefs": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "buildArgs": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "cacheFrom": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "cacheTo": {
                    "type": "string"
                  },
                  "caching": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "context": {
                    "type": "string"
                  },
                  "dockerfile": {
                    "type": "string"
                  },
                  "host": {
                    "type": "string"
                  },
                  "imageName": {
                    "type": "string"
                  },
                  "envDockerSecrets": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "fileDockerSecrets": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "labels": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "optimize": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "projectID": {
                    "type": "string"
                  },
                  "remoteCacheImage": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "tags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "host",
              "imageName",
              "projectID",
              "tags"
            ],
            "properties": {
              "baseImageConnectorRefs": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "buildArgs": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "cacheFrom": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "cacheTo": {
                "type": "string"
              },
              "caching": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "context": {
                "type": "string"
              },
              "dockerfile": {
                "type": "string"
              },
              "host": {
                "type": "string"
              },
              "imageName": {
                "type": "string"
              },
              "labels": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "optimize": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "projectID": {
                "type": "string"
              },
              "remoteCacheImage": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "tags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for GCRStepInfo"
              }
            }
          },
          "BuildAndPushGARNode": {
            "title": "BuildAndPushGARNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for BuildAndPushGARNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "BuildAndPushGAR"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "BuildAndPushGAR"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/GARStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GARStepInfo": {
            "title": "GARStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "host",
                  "imageName",
                  "projectID",
                  "tags"
                ],
                "properties": {
                  "baseImageConnectorRefs": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "buildArgs": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "cacheFrom": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "cacheTo": {
                    "type": "string"
                  },
                  "caching": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "context": {
                    "type": "string"
                  },
                  "dockerfile": {
                    "type": "string"
                  },
                  "host": {
                    "type": "string"
                  },
                  "imageName": {
                    "type": "string"
                  },
                  "envDockerSecrets": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "fileDockerSecrets": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "labels": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "optimize": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "projectID": {
                    "type": "string"
                  },
                  "remoteCacheImage": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "tags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "host",
              "imageName",
              "projectID",
              "tags"
            ],
            "properties": {
              "baseImageConnectorRefs": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "buildArgs": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "cacheFrom": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "cacheTo": {
                "type": "string"
              },
              "caching": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "context": {
                "type": "string"
              },
              "dockerfile": {
                "type": "string"
              },
              "host": {
                "type": "string"
              },
              "imageName": {
                "type": "string"
              },
              "labels": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "optimize": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "projectID": {
                "type": "string"
              },
              "remoteCacheImage": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "tags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "target": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for GARStepInfo"
              }
            }
          },
          "GCSUploadNode": {
            "title": "GCSUploadNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GCSUploadNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GCSUpload"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GCSUpload"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/UploadToGCSStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "UploadToGCSStepInfo": {
            "title": "UploadToGCSStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "bucket",
                  "connectorRef",
                  "sourcePath"
                ],
                "properties": {
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "bucket": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "sourcePath": {
                    "type": "string"
                  },
                  "target": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "bucket",
              "connectorRef",
              "sourcePath"
            ],
            "properties": {
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "bucket": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "sourcePath": {
                "type": "string"
              },
              "target": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for UploadToGCSStepInfo"
              }
            }
          },
          "RestoreCacheGCSNode": {
            "title": "RestoreCacheGCSNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for RestoreCacheGCSNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "RestoreCacheGCS"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "RestoreCacheGCS"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/RestoreCacheGCSStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "RestoreCacheGCSStepInfo": {
            "title": "RestoreCacheGCSStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "bucket",
                  "connectorRef",
                  "key"
                ],
                "properties": {
                  "archiveFormat": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Tar",
                          "Gzip"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "bucket": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "failIfKeyNotFound": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "key": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preserveMetadata": {
                    "type": "boolean"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "bucket",
              "connectorRef",
              "key"
            ],
            "properties": {
              "archiveFormat": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Tar",
                      "Gzip"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "bucket": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "failIfKeyNotFound": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "key": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preserveMetadata": {
                "type": "boolean"
              },
              "description": {
                "desc": "This is the description for RestoreCacheGCSStepInfo"
              }
            }
          },
          "RestoreCacheS3Node": {
            "title": "RestoreCacheS3Node",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for RestoreCacheS3Node"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "RestoreCacheS3"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "RestoreCacheS3"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/RestoreCacheS3StepInfo"
                    }
                  }
                }
              }
            ]
          },
          "RestoreCacheS3StepInfo": {
            "title": "RestoreCacheS3StepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "bucket",
                  "connectorRef",
                  "key"
                ],
                "properties": {
                  "archiveFormat": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Tar",
                          "Gzip",
                          "Zstd"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "bucket": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "endpoint": {
                    "type": "string"
                  },
                  "failIfKeyNotFound": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "key": {
                    "type": "string"
                  },
                  "pathStyle": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "region": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preserveMetadata": {
                    "type": "boolean"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "bucket",
              "connectorRef",
              "key"
            ],
            "properties": {
              "archiveFormat": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Tar",
                      "Gzip",
                      "Zstd"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "bucket": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "endpoint": {
                "type": "string"
              },
              "failIfKeyNotFound": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "key": {
                "type": "string"
              },
              "pathStyle": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "region": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preserveMetadata": {
                "type": "boolean"
              },
              "description": {
                "desc": "This is the description for RestoreCacheS3StepInfo"
              }
            }
          },
          "RestoreCacheAzureNode": {
            "title": "RestoreCacheAzureNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for RestoreCacheAzureNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "RestoreCacheAzure"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "RestoreCacheAzure"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/RestoreCacheAzureStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "RestoreCacheAzureStepInfo": {
            "title": "RestoreCacheAzureStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "containerName",
                  "connectorRef",
                  "key",
                  "sourcePaths",
                  "storageAccount"
                ],
                "properties": {
                  "containerName": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "failIfKeyNotFound": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "key": {
                    "type": "string"
                  },
                  "preserveMetadata": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "sourcePaths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "storageAccount": {
                    "type": "string"
                  },
                  "unevaluatedProperties": false
                }
              },
              {
                "type": "object",
                "properties": {
                  "desc": {
                    "type": "string"
                  }
                },
                "examples": [
                  {
                    "desc": "This is the description for RestoreCacheAzureStepInfo"
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "RestoreCacheNode": {
            "title": "RestoreCacheNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for RestoreCacheNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "RestoreCache"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "RestoreCache"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/RestoreCacheStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "RestoreCacheStepInfo": {
            "title": "RestoreCacheStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "providerType",
                  "key"
                ],
                "if": {
                  "properties": {
                    "providerType": {
                      "enum": [
                        "Gcs",
                        "S3"
                      ]
                    }
                  }
                },
                "then": {
                  "required": [
                    "bucket",
                    "connectorRef"
                  ]
                },
                "properties": {
                  "providerType": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Gcs",
                          "S3",
                          "Harness",
                          "Azure"
                        ]
                      }
                    ]
                  },
                  "archiveFormat": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Tar",
                          "Gzip"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "bucket": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "failIfKeyNotFound": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "key": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "key",
              "providerType"
            ],
            "if": {
              "properties": {
                "providerType": {
                  "enum": [
                    "Gcs",
                    "S3"
                  ]
                }
              }
            },
            "then": {
              "required": [
                "bucket",
                "connectorRef"
              ]
            },
            "properties": {
              "archiveFormat": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Tar",
                      "Gzip"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "bucket": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "failIfKeyNotFound": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "key": {
                "type": "string"
              },
              "providerType": {
                "type": "string",
                "enum": [
                  "Gcs",
                  "S3",
                  "Harness",
                  "Azure"
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for RestoreCacheStepInfo"
              }
            }
          },
          "SaveCacheAzureNode": {
            "title": "SaveCacheAzureNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SaveCacheAzureNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SaveCacheAzure"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SaveCacheAzure"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/SaveCacheAzureStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SaveCacheAzureStepInfo": {
            "title": "SaveCacheAzureStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "key",
                  "storageAccount",
                  "containerName",
                  "sourcePaths"
                ],
                "properties": {
                  "archiveFormat": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Tar",
                          "Gzip",
                          "Zstd"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "storageAccount": {
                    "type": "string"
                  },
                  "containerName": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "key": {
                    "type": "string"
                  },
                  "override": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "sourcePaths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "key",
              "storageAccount",
              "containerName",
              "sourcePaths"
            ],
            "properties": {
              "archiveFormat": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Tar",
                      "Gzip",
                      "Zstd"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "storageAccount": {
                "type": "string"
              },
              "containerName": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "key": {
                "type": "string"
              },
              "override": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "sourcePaths": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for SaveCacheAzureStepInfo"
              }
            }
          },
          "RunTestStepNode": {
            "title": "RunTestStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for RunTestStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "RunTests"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "RunTests"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/RunTestsStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "RunTestsStepInfo": {
            "title": "RunTestsStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "buildTool",
                  "language"
                ],
                "properties": {
                  "args": {
                    "type": "string"
                  },
                  "buildEnvironment": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Core",
                          "Framework"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "buildTool": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Maven",
                          "Bazel",
                          "Gradle",
                          "Dotnet",
                          "Nunitconsole",
                          "SBT",
                          "Pytest",
                          "Unittest",
                          "Rspec"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "enableTestSplitting": {
                    "type": "boolean"
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "frameworkVersion": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "5.0",
                          "6.0"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "language": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Java",
                          "Kotlin",
                          "Scala",
                          "Csharp",
                          "Python",
                          "Ruby"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "namespaces": {
                    "type": "string"
                  },
                  "outputVariables": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      ]
                    }
                  },
                  "packages": {
                    "type": "string"
                  },
                  "postCommand": {
                    "type": "string"
                  },
                  "preCommand": {
                    "type": "string"
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "pythonVersion": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "3",
                          "2"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "reports": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/UnitTestReport"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "runOnlySelectedTests": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "shell": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Sh",
                          "Bash",
                          "Powershell",
                          "Pwsh",
                          "Python"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "testAnnotations": {
                    "type": "string"
                  },
                  "testGlobs": {
                    "type": "string"
                  },
                  "testRoot": {
                    "type": "string"
                  },
                  "testSplitStrategy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "ClassTiming",
                          "TestCount"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "buildTool",
              "language"
            ],
            "properties": {
              "args": {
                "type": "string"
              },
              "buildEnvironment": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Core",
                      "Framework"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "buildTool": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Maven",
                      "Bazel",
                      "Gradle",
                      "Dotnet",
                      "Nunitconsole",
                      "SBT",
                      "Pytest",
                      "Unittest",
                      "Rspec"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "enableTestSplitting": {
                "type": "boolean"
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "frameworkVersion": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "5.0",
                      "6.0"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "language": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Java",
                      "Kotlin",
                      "Scala",
                      "Csharp",
                      "Python",
                      "Ruby"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "namespaces": {
                "type": "string"
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "packages": {
                "type": "string"
              },
              "postCommand": {
                "type": "string"
              },
              "preCommand": {
                "type": "string"
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "pythonVersion": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "3",
                      "2"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "reports": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/UnitTestReport"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "runOnlySelectedTests": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "shell": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Sh",
                      "Bash",
                      "Powershell",
                      "Pwsh",
                      "Python"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "testAnnotations": {
                "type": "string"
              },
              "testGlobs": {
                "type": "string"
              },
              "testRoot": {
                "type": "string"
              },
              "testSplitStrategy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ClassTiming",
                      "TestCount"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for RunTestsStepInfo"
              }
            }
          },
          "RunTestStepV2Node": {
            "title": "RunTestStepV2Node",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for RunTestStepV2Node"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Test"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Test"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/RunTestStepV2Info"
                    }
                  }
                }
              }
            ]
          },
          "RunTestStepV2Info": {
            "title": "RunTestStepV2Info",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "command": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputVariables": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                        }
                      ]
                    }
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "reports": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/common/UnitTestReport"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "shell": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Sh",
                          "Bash",
                          "Powershell",
                          "Pwsh",
                          "Python"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "command": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "outputVariables": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/OutputNGVariable"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "reports": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/UnitTestReport"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "shell": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Sh",
                      "Bash",
                      "Powershell",
                      "Pwsh",
                      "Python"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for RunTestStepV2Info"
              }
            }
          },
          "SaveCacheGCSNode": {
            "title": "SaveCacheGCSNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SaveCacheGCSNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SaveCacheGCS"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SaveCacheGCS"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/SaveCacheGCSStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SaveCacheGCSStepInfo": {
            "title": "SaveCacheGCSStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "bucket",
                  "connectorRef",
                  "key",
                  "sourcePaths"
                ],
                "properties": {
                  "archiveFormat": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Tar",
                          "Gzip"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "bucket": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "key": {
                    "type": "string"
                  },
                  "override": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "sourcePaths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "bucket",
              "connectorRef",
              "key",
              "sourcePaths"
            ],
            "properties": {
              "archiveFormat": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Tar",
                      "Gzip"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "bucket": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "key": {
                "type": "string"
              },
              "override": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "sourcePaths": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for SaveCacheGCSStepInfo"
              }
            }
          },
          "SaveCacheS3Node": {
            "title": "SaveCacheS3Node",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SaveCacheS3Node"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SaveCacheS3"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SaveCacheS3"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/SaveCacheS3StepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SaveCacheS3StepInfo": {
            "title": "SaveCacheS3StepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "bucket",
                  "connectorRef",
                  "key",
                  "sourcePaths"
                ],
                "properties": {
                  "archiveFormat": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Tar",
                          "Gzip",
                          "Zstd"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "bucket": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "endpoint": {
                    "type": "string"
                  },
                  "key": {
                    "type": "string"
                  },
                  "override": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "pathStyle": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "region": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "sourcePaths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "bucket",
              "connectorRef",
              "key",
              "sourcePaths"
            ],
            "properties": {
              "archiveFormat": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Tar",
                      "Gzip",
                      "Zstd"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "bucket": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "endpoint": {
                "type": "string"
              },
              "key": {
                "type": "string"
              },
              "override": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "pathStyle": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "region": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "sourcePaths": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for SaveCacheS3StepInfo"
              }
            }
          },
          "SaveCacheNode": {
            "title": "SaveCacheNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SaveCacheNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SaveCache"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SaveCache"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/ci/SaveCacheStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SaveCacheStepInfo": {
            "title": "SaveCacheStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/ci/CIStepInfo"
              },
              {
                "type": "object",
                "required": [
                  "providerType",
                  "key",
                  "sourcePaths"
                ],
                "if": {
                  "properties": {
                    "providerType": {
                      "enum": [
                        "Gcs",
                        "S3"
                      ]
                    }
                  }
                },
                "then": {
                  "required": [
                    "bucket",
                    "connectorRef"
                  ]
                },
                "properties": {
                  "providerType": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Gcs",
                          "S3",
                          "Harness",
                          "Azure"
                        ]
                      }
                    ]
                  },
                  "archiveFormat": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Tar",
                          "Gzip",
                          "Zstd"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "baseImageConnectorRefs": {
                    "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
                  },
                  "bucket": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "endpoint": {
                    "type": "string"
                  },
                  "key": {
                    "type": "string"
                  },
                  "override": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "pathStyle": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "region": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "sourcePaths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "key",
              "sourcePaths"
            ],
            "if": {
              "properties": {
                "providerType": {
                  "enum": [
                    "Gcs",
                    "S3"
                  ]
                }
              }
            },
            "then": {
              "required": [
                "bucket",
                "connectorRef"
              ]
            },
            "properties": {
              "archiveFormat": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Tar",
                      "Gzip",
                      "Zstd"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "baseImageConnectorRefs": {
                "$ref": "#/definitions/pipeline/steps/ci/ParameterFieldListString"
              },
              "bucket": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "endpoint": {
                "type": "string"
              },
              "key": {
                "type": "string"
              },
              "override": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "pathStyle": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "region": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "sourcePaths": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for SaveCacheStepInfo"
              }
            }
          }
        },
        "iacm": {
          "IACMTerraformPluginStepNode": {
            "title": "IACMTerraformPluginStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IACMTerraformPluginStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "IACMTerraformPlugin"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "IACMTerraformPlugin"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/iacm/IACMTerraformPluginInfo"
                    }
                  }
                }
              }
            ]
          },
          "IACMTerraformPluginInfo": {
            "title": "IACMTerraformPluginInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "command"
                ],
                "properties": {
                  "command": {
                    "type": "string"
                  },
                  "commandMode": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "target": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "replace": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "import": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/iacm/ImportCommandParameterField"
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "command"
            ],
            "properties": {
              "command": {
                "type": "string"
              },
              "commandMode": {
                "type": "string"
              },
              "image": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for IACMTerraformPluginInfo"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "target": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "replace": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "import": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/iacm/ImportCommandParameterField"
                }
              }
            }
          },
          "ImportCommandParameterField": {
            "title": "ImportCommandParameterField",
            "type": "object",
            "required": [
              "id",
              "address"
            ],
            "properties": {
              "id": {
                "type": "string",
                "desc": "This is the id for ImportCommandParameterField"
              },
              "address": {
                "type": "string",
                "desc": "This is the address for ImportCommandParameterField"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "IACMAwsCdkPluginStepNode": {
            "title": "IACMAwsCdkPluginStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IACMAwsCdkPluginStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "IACMAwsCdkPlugin"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "IACMAwsCdkPlugin"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/iacm/IACMAwsCdkPluginInfo"
                    }
                  }
                }
              }
            ]
          },
          "IACMAwsCdkPluginInfo": {
            "title": "IACMAwsCdkPluginInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "command"
                ],
                "properties": {
                  "command": {
                    "type": "string",
                    "enum": [
                      "bootstrap",
                      "synth",
                      "deploy",
                      "destroy",
                      "diff"
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "appPath": {
                    "type": "string"
                  },
                  "stackNames": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "context": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "command"
            ],
            "properties": {
              "command": {
                "type": "string",
                "enum": [
                  "bootstrap",
                  "synth",
                  "deploy",
                  "destroy",
                  "diff"
                ]
              },
              "image": {
                "type": "string"
              },
              "appPath": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for IACMAwsCdkPluginInfo"
              },
              "stackNames": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "context": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              }
            }
          },
          "IACMApprovalStepNode": {
            "title": "IACMApprovalStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IACMApprovalStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "IACMApproval"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "IACMApproval"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/iacm/IACMApprovalInfo"
                    }
                  }
                }
              }
            ]
          },
          "IACMApprovalInfo": {
            "title": "IACMApprovalInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "image": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for IACMApprovalInfo"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              }
            }
          },
          "IACMOpenTofuPluginStepNode": {
            "title": "IACMOpenTofuPluginStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IACMOpenTofuPluginStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "IACMOpenTofuPlugin"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "IACMOpenTofuPlugin"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/iacm/IACMOpenTofuPluginInfo"
                    }
                  }
                }
              }
            ]
          },
          "IACMOpenTofuPluginInfo": {
            "title": "IACMOpenTofuPluginInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "command"
                ],
                "properties": {
                  "command": {
                    "type": "string"
                  },
                  "commandMode": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "target": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "replace": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "import": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/iacm/ImportCommandParameterField"
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "command"
            ],
            "properties": {
              "command": {
                "type": "string"
              },
              "commandMode": {
                "type": "string"
              },
              "image": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for IACMOpenTofuPluginInfo"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "target": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "replace": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "import": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/iacm/ImportCommandParameterField"
                }
              }
            }
          },
          "IACMTFSecPluginStepNode": {
            "title": "IACMTFSecPluginStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IACMTFSecPluginStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "IACMTFSec"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "IACMTFSec"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/iacm/IACMTFSecPluginInfo"
                    }
                  }
                }
              }
            ]
          },
          "IACMTFSecPluginInfo": {
            "title": "IACMTFSecPluginInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "image": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for IACMTFSecPluginInfo"
              }
            }
          },
          "IACMTFLintPluginStepNode": {
            "title": "IACMTFLintPluginStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IACMTFLintPluginStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "IACMTFLint"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "IACMTFLint"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/iacm/IACMTFLintPluginInfo"
                    }
                  }
                }
              }
            ]
          },
          "IACMTFLintPluginInfo": {
            "title": "IACMTFLintPluginInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "langserver": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "format": {
                    "enum": [
                      "default",
                      "json",
                      "checkstyle",
                      "junit",
                      "compact",
                      "sarif"
                    ],
                    "type": "string"
                  },
                  "config": {
                    "type": "string"
                  },
                  "ignoreModule": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "enableRule": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "disableRule": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "only": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "callModuleType": {
                    "type": "string",
                    "enum": [
                      "all",
                      "local",
                      "none"
                    ]
                  },
                  "chdir": {
                    "type": "string"
                  },
                  "recursive": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "filter": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "force": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "minimumFailureSeverity": {
                    "type": "string",
                    "enum": [
                      "error",
                      "warning",
                      "notice"
                    ]
                  },
                  "fix": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "noParallelRunners": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "maxWorkers": {
                    "oneOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "image": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for IACMTFLintPluginInfo"
              },
              "langserver": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "format": {
                "enum": [
                  "default",
                  "json",
                  "checkstyle",
                  "junit",
                  "compact",
                  "sarif"
                ],
                "type": "string"
              },
              "config": {
                "type": "string"
              },
              "ignoreModule": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "enableRule": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "disableRule": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "only": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "callModuleType": {
                "type": "string",
                "enum": [
                  "all",
                  "local",
                  "none"
                ]
              },
              "chdir": {
                "type": "string"
              },
              "recursive": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "filter": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "force": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "minimumFailureSeverity": {
                "type": "string",
                "enum": [
                  "error",
                  "warning",
                  "notice"
                ]
              },
              "fix": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "noParallelRunners": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "maxWorkers": {
                "type": "number"
              }
            }
          },
          "IACMTFCompliancePluginStepNode": {
            "title": "IACMTFCompliancePluginStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IACMTFCompliancePluginStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "IACMTFCompliance"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "IACMTFCompliance"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/iacm/IACMTFCompliancePluginInfo"
                    }
                  }
                }
              }
            ]
          },
          "IACMTFCompliancePluginInfo": {
            "title": "IACMTFCompliancePluginInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "image": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for IACMTFCompliancePluginInfo"
              }
            }
          },
          "IACMCheckovPluginStepNode": {
            "title": "IACMCheckovPluginStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IACMCheckovPluginStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "IACMCheckov"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "IACMCheckov"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/iacm/IACMCheckovPluginInfo"
                    }
                  }
                }
              }
            ]
          },
          "IACMCheckovPluginInfo": {
            "title": "IACMCheckovPluginInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "image": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for IACMCheckovPluginInfo"
              }
            }
          },
          "IACMModuleTestPluginStepNode": {
            "title": "IACMModuleTestPluginStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IACMModuleTestPluginStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "IACMModuleTestPlugin"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "IACMModuleTestPlugin"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/iacm/IACMModuleTestPluginInfo"
                    }
                  }
                }
              }
            ]
          },
          "IACMModuleTestPluginInfo": {
            "title": "IACMModuleTestPluginInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "command"
                ],
                "properties": {
                  "command": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "target": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "replace": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "command"
            ],
            "properties": {
              "command": {
                "type": "string"
              },
              "image": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for IACMModuleTestPluginInfo"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "target": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "replace": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              }
            }
          },
          "IACMTerragruntPluginStepNode": {
            "title": "IACMTerragruntPluginStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IACMTerragruntPluginStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+(\\s?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "IACMTerragruntPlugin"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "IACMTerragruntPlugin"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/iacm/IACMTerragruntPluginInfo"
                    }
                  }
                }
              }
            ]
          },
          "IACMTerragruntPluginInfo": {
            "title": "IACMTerragruntPluginInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "command"
                ],
                "properties": {
                  "command": {
                    "type": "string"
                  },
                  "folderPathOverride": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "target": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "replace": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "import": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/iacm/ImportCommandParameterField"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "command"
            ],
            "properties": {
              "command": {
                "type": "string"
              },
              "folderPathOverride": {
                "type": "string"
              },
              "image": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for IACMTerragruntPluginInfo"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "target": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "replace": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "import": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/iacm/ImportCommandParameterField"
                }
              }
            }
          },
          "IACMAnsiblePluginStepNode": {
            "title": "IACMAnsiblePluginStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IACMAnsiblePluginStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+(\\s?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "IACMAnsiblePlugin"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "IACMAnsiblePlugin"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/iacm/IACMAnsiblePluginInfo"
                    }
                  }
                }
              }
            ]
          },
          "IACMAnsiblePluginInfo": {
            "title": "IACMAnsiblePluginInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "command"
                ],
                "properties": {
                  "command": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "target": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "replace": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "import": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/iacm/ImportCommandParameterField"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "command"
            ],
            "properties": {
              "command": {
                "type": "string"
              },
              "image": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for IACMAnsiblePluginInfo"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "target": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "replace": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "import": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/iacm/ImportCommandParameterField"
                }
              }
            }
          }
        },
        "cd": {
          "MergePRStepNode": {
            "title": "MergePRStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for MergePRStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "MergePR"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "MergePR"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/MergePRStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "MergePRStepInfo": {
            "title": "MergePRStepInfo",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "deleteSourceBranch"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "deleteSourceBranch": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "disableGitRestraint": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "mergeStrategy": {
                "description": "Merge strategy to use when merging the PR. Allowed values: merge, squash. Default: merge",
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "merge",
                      "squash"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "description": {
                "desc": "This is the description for MergePRStepInfo"
              }
            },
            "$ref": "#/definitions/pipeline/common/StepSpecType"
          },
          "HelmDeployStepNode": {
            "title": "HelmDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for HelmDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "HelmDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HelmDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "HelmDeployStepInfo": {
            "title": "HelmDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ignoreReleaseHistFailStatus": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "skipSteadyStateCheck": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "useUpgradeInstall": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "runChartTests": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "skipCleanup": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ],
                    "description": "When enabled, prevents automatic uninstallation of failed Helm releases",
                    "default": false
                  },
                  "commandFlags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/HelmManifestCommandFlag"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ignoreReleaseHistFailStatus": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "skipSteadyStateCheck": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "useUpgradeInstall": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "runChartTests": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "skipCleanup": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ],
                "description": "When enabled, prevents automatic uninstallation of failed Helm releases",
                "default": false
              },
              "environmentVariables": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ParameterFieldMapStringString"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "commandFlags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmManifestCommandFlag"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for HelmDeployStepInfo"
              }
            }
          },
          "ParameterFieldBoolean": {
            "title": "ParameterFieldBoolean",
            "type": "object",
            "properties": {
              "defaultValue": {
                "type": "boolean"
              },
              "executionInput": {
                "type": "boolean"
              },
              "expression": {
                "type": "boolean"
              },
              "expressionValue": {
                "type": "string"
              },
              "inputSetValidator": {
                "$ref": "#/definitions/pipeline/common/InputSetValidator"
              },
              "jsonResponseField": {
                "type": "boolean"
              },
              "responseField": {
                "type": "string"
              },
              "typeString": {
                "type": "boolean"
              },
              "value": {
                "type": "boolean"
              },
              "description": {
                "desc": "This is the description for ParameterFieldBoolean"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "HelmManifestCommandFlag": {
            "title": "HelmManifestCommandFlag",
            "type": "object",
            "required": [
              "commandType"
            ],
            "properties": {
              "commandType": {
                "type": "string",
                "enum": [
                  "Fetch",
                  "Template",
                  "Pull",
                  "Install",
                  "Upgrade",
                  "Rollback",
                  "History",
                  "Delete",
                  "Uninstall",
                  "List",
                  "Add",
                  "Update",
                  "Version",
                  "Test"
                ]
              },
              "flag": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for HelmManifestCommandFlag"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TasBGAppSetupStepNode": {
            "title": "TasBGAppSetupStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TasBGAppSetupStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "BGAppSetup"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "BGAppSetup"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TasBGAppSetupStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TasBGAppSetupStepInfo": {
            "title": "TasBGAppSetupStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "existingVersionToKeep",
                  "tasInstanceCountType"
                ],
                "properties": {
                  "additionalRoutes": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "existingVersionToKeep": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "tasInstanceCountType": {
                    "type": "string",
                    "enum": [
                      "FromManifest",
                      "MatchRunningInstances"
                    ]
                  },
                  "tempRoutes": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "existingVersionToKeep",
              "tasInstanceCountType"
            ],
            "properties": {
              "additionalRoutes": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "existingVersionToKeep": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "tasInstanceCountType": {
                "type": "string",
                "enum": [
                  "FromManifest",
                  "MatchRunningInstances"
                ]
              },
              "tempRoutes": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for TasBGAppSetupStepInfo"
              }
            }
          },
          "ElastigroupSetupStepNode": {
            "title": "ElastigroupSetupStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ElastigroupSetupStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ElastigroupSetup"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ElastigroupSetup"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ElastigroupSetupStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ElastigroupSetupStepInfo": {
            "title": "ElastigroupSetupStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "instances"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "instances": {
                    "$ref": "#/definitions/pipeline/steps/cd/ElastigroupInstances"
                  },
                  "name": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "instances"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "instances": {
                "$ref": "#/definitions/pipeline/steps/cd/ElastigroupInstances"
              },
              "name": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ElastigroupSetupStepInfo"
              }
            }
          },
          "ElastigroupInstances": {
            "title": "ElastigroupInstances",
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Fixed",
                  "CurrentRunning"
                ]
              },
              "description": {
                "desc": "This is the description for ElastigroupInstances"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CurrentRunning"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ElastigroupCurrentRunningInstances"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Fixed"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ElastigroupFixedInstances"
                    }
                  }
                }
              }
            ]
          },
          "ElastigroupCurrentRunningInstances": {
            "title": "ElastigroupCurrentRunningInstances",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ElastigroupInstancesSpec"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ElastigroupCurrentRunningInstances"
              }
            }
          },
          "ElastigroupInstancesSpec": {
            "title": "ElastigroupInstancesSpec",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Fixed",
                  "CurrentRunning"
                ]
              },
              "description": {
                "desc": "This is the description for ElastigroupInstancesSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ElastigroupFixedInstances": {
            "title": "ElastigroupFixedInstances",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ElastigroupInstancesSpec"
              },
              {
                "type": "object",
                "required": [
                  "desired",
                  "max",
                  "min"
                ],
                "properties": {
                  "desired": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "max": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "min": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ElastigroupFixedInstances"
              }
            }
          },
          "EcsRollingRollbackStepNode": {
            "title": "EcsRollingRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for EcsRollingRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "EcsRollingRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsRollingRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsRollingRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "EcsRollingRollbackStepInfo": {
            "title": "EcsRollingRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for EcsRollingRollbackStepInfo"
              }
            }
          },
          "TasCanaryAppSetupStepNode": {
            "title": "TasCanaryAppSetupStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TasCanaryAppSetupStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CanaryAppSetup"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CanaryAppSetup"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TasCanaryAppSetupStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TasCanaryAppSetupStepInfo": {
            "title": "TasCanaryAppSetupStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "existingVersionToKeep",
                  "resizeStrategy",
                  "tasInstanceCountType"
                ],
                "properties": {
                  "additionalRoutes": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "existingVersionToKeep": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 1
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "resizeStrategy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "UpScaleNewFirst",
                          "DownScaleOldFirst"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "tasInstanceCountType": {
                    "type": "string",
                    "enum": [
                      "FromManifest",
                      "MatchRunningInstances"
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "existingVersionToKeep",
              "resizeStrategy",
              "tasInstanceCountType"
            ],
            "properties": {
              "additionalRoutes": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "existingVersionToKeep": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "resizeStrategy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "UpScaleNewFirst",
                      "DownScaleOldFirst"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "tasInstanceCountType": {
                "type": "string",
                "enum": [
                  "FromManifest",
                  "MatchRunningInstances"
                ]
              },
              "description": {
                "desc": "This is the description for TasCanaryAppSetupStepInfo"
              }
            }
          },
          "GoogleFunctionsRollbackStepNode": {
            "title": "GoogleFunctionsRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GoogleFunctionsRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CloudFunctionRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CloudFunctionRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleFunctionsRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GoogleFunctionsRollbackStepInfo": {
            "title": "GoogleFunctionsRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for GoogleFunctionsRollbackStepInfo"
              }
            }
          },
          "GoogleFunctionsGenOneRollbackStepNode": {
            "title": "GoogleFunctionsGenOneRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GoogleFunctionsGenOneRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "RollbackCloudFunctionGenOne"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "RollbackCloudFunctionGenOne"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleFunctionsGenOneRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GoogleFunctionsGenOneRollbackStepInfo": {
            "title": "GoogleFunctionsGenOneRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for GoogleFunctionsGenOneRollbackStepInfo"
              }
            }
          },
          "CloudformationDeleteStackStepNode": {
            "title": "CloudformationDeleteStackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for CloudformationDeleteStackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DeleteStack"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DeleteStack"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/CloudformationDeleteStackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "CloudformationDeleteStackStepInfo": {
            "title": "CloudformationDeleteStackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "configuration"
                ],
                "properties": {
                  "configuration": {
                    "$ref": "#/definitions/pipeline/steps/cd/CloudformationDeleteStackStepConfiguration"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "configuration"
            ],
            "properties": {
              "configuration": {
                "$ref": "#/definitions/pipeline/steps/cd/CloudformationDeleteStackStepConfiguration"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "metadata": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for CloudformationDeleteStackStepInfo"
              }
            }
          },
          "CloudformationDeleteStackStepConfiguration": {
            "title": "CloudformationDeleteStackStepConfiguration",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for CloudformationDeleteStackStepConfiguration"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Inherited"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/InheritedCloudformationDeleteStackStepConfiguration"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Inline"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/InlineCloudformationDeleteStackStepConfiguration"
                    }
                  }
                }
              }
            ]
          },
          "InheritedCloudformationDeleteStackStepConfiguration": {
            "title": "InheritedCloudformationDeleteStackStepConfiguration",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/CloudformationDeleteStackStepConfigurationSpec"
              },
              {
                "type": "object",
                "required": [
                  "provisionerIdentifier"
                ],
                "properties": {
                  "provisionerIdentifier": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for InheritedCloudformationDeleteStackStepConfiguration"
              }
            }
          },
          "CloudformationDeleteStackStepConfigurationSpec": {
            "title": "CloudformationDeleteStackStepConfigurationSpec",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for CloudformationDeleteStackStepConfigurationSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "InlineCloudformationDeleteStackStepConfiguration": {
            "title": "InlineCloudformationDeleteStackStepConfiguration",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/CloudformationDeleteStackStepConfigurationSpec"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "region",
                  "stackName"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  },
                  "roleArn": {
                    "type": "string"
                  },
                  "stackName": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for InlineCloudformationDeleteStackStepConfiguration"
              }
            }
          },
          "ElastigroupSwapRouteStepNode": {
            "title": "ElastigroupSwapRouteStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ElastigroupSwapRouteStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ElastigroupSwapRoute"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ElastigroupSwapRoute"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ElastigroupSwapRouteStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ElastigroupSwapRouteStepInfo": {
            "title": "ElastigroupSwapRouteStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "downsizeOldElastigroup"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "downsizeOldElastigroup": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "downsizeOldElastigroup"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "downsizeOldElastigroup": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for ElastigroupSwapRouteStepInfo"
              }
            }
          },
          "BambooBuildStepNode": {
            "title": "BambooBuildStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for BambooBuildStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "BambooBuild"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "BambooBuild"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/BambooBuildStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "BambooBuildStepInfo": {
            "title": "BambooBuildStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "planName"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "planName": {
                    "type": "string"
                  },
                  "planParameter": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/BambooParameterField"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "planName"
            ],
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "metadata": {
                "type": "string"
              },
              "planName": {
                "type": "string"
              },
              "planParameter": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/BambooParameterField"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for BambooBuildStepInfo"
              }
            }
          },
          "BambooParameterField": {
            "title": "BambooParameterField",
            "type": "object",
            "required": [
              "value"
            ],
            "properties": {
              "metadata": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "String",
                  "Number"
                ]
              },
              "value": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for BambooParameterField"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "EcsCanaryDeployStepNode": {
            "title": "EcsCanaryDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for EcsCanaryDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "EcsCanaryDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsCanaryDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsCanaryDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "EcsCanaryDeployStepInfo": {
            "title": "EcsCanaryDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for EcsCanaryDeployStepInfo"
              }
            }
          },
          "TasSwapRollbackStepNode": {
            "title": "TasSwapRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TasSwapRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SwapRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SwapRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TasSwapRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TasSwapRollbackStepInfo": {
            "title": "TasSwapRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "upsizeInActiveApp"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "upsizeInActiveApp": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "upsizeInActiveApp"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "upsizeInActiveApp": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for TasSwapRollbackStepInfo"
              }
            }
          },
          "K8sDryRunManifestStepNode": {
            "title": "K8sDryRunManifestStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for K8sDryRunManifestStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "K8sDryRun"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "K8sDryRun"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sDryRunManifestStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "K8sDryRunManifestStepInfo": {
            "title": "K8sDryRunManifestStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "encryptYamlOutput": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "encryptYamlOutput": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for K8sDryRunManifestStepInfo"
              }
            }
          },
          "ElastigroupDeployStepNode": {
            "title": "ElastigroupDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ElastigroupDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ElastigroupDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ElastigroupDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ElastigroupDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ElastigroupDeployStepInfo": {
            "title": "ElastigroupDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "newService"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "newService": {
                    "$ref": "#/definitions/pipeline/steps/cd/Capacity"
                  },
                  "oldService": {
                    "$ref": "#/definitions/pipeline/steps/cd/Capacity"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "newService"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "metadata": {
                "type": "string"
              },
              "newService": {
                "$ref": "#/definitions/pipeline/steps/cd/Capacity"
              },
              "oldService": {
                "$ref": "#/definitions/pipeline/steps/cd/Capacity"
              },
              "description": {
                "desc": "This is the description for ElastigroupDeployStepInfo"
              }
            }
          },
          "Capacity": {
            "title": "Capacity",
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for Capacity"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Count"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/CountCapacitySpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Percentage"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/PercentageCapacitySpec"
                    }
                  }
                }
              }
            ]
          },
          "CountCapacitySpec": {
            "title": "CountCapacitySpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/CapacitySpec"
              },
              {
                "type": "object",
                "required": [
                  "count"
                ],
                "properties": {
                  "count": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CountCapacitySpec"
              }
            }
          },
          "CapacitySpec": {
            "title": "CapacitySpec",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for CapacitySpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "PercentageCapacitySpec": {
            "title": "PercentageCapacitySpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/CapacitySpec"
              },
              {
                "type": "object",
                "required": [
                  "percentage"
                ],
                "properties": {
                  "percentage": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "maximum": 100
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for PercentageCapacitySpec"
              }
            }
          },
          "K8sDiffStepNode": {
            "title": "K8sDiffStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for K8sDiffStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "K8sDiff"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "K8sDiff"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sDiffStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "K8sDiffStepInfo": {
            "title": "K8sDiffStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for K8sDiffStepInfo"
              }
            }
          },
          "FetchLinkedAppsStepNode": {
            "title": "FetchLinkedAppsStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FetchLinkedAppsStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GitOpsFetchLinkedApps"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GitOpsFetchLinkedApps"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/FetchLinkedAppsStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FetchLinkedAppsStepInfo": {
            "title": "FetchLinkedAppsStepInfo",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "filterByServiceEnvCluster": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for FetchLinkedAppsStepInfo"
              }
            },
            "$ref": "#/definitions/pipeline/common/StepSpecType"
          },
          "TerraformDestroyStepNode": {
            "title": "TerraformDestroyStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TerraformDestroyStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "TerraformDestroy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TerraformDestroy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerraformDestroyStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TerraformDestroyStepInfo": {
            "title": "TerraformDestroyStepInfo",
            "allOf": [
              {
                "oneOf": [
                  {
                    "required": [
                      "configuration"
                    ]
                  },
                  {
                    "required": [
                      "cloudCliConfiguration"
                    ]
                  }
                ],
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "provisionerIdentifier"
                ],
                "properties": {
                  "cloudCliConfiguration": {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudCliStepConfiguration"
                  },
                  "configuration": {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformStepConfiguration"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "provisionerIdentifier": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "configuration"
                    ]
                  },
                  {
                    "required": [
                      "cloudCliConfiguration"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "provisionerIdentifier"
            ],
            "properties": {
              "cloudCliConfiguration": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudCliStepConfiguration"
              },
              "configuration": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformStepConfiguration"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "metadata": {
                "type": "string"
              },
              "provisionerIdentifier": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerraformDestroyStepInfo"
              }
            }
          },
          "TerraformCloudCliStepConfiguration": {
            "title": "TerraformCloudCliStepConfiguration",
            "type": "object",
            "properties": {
              "commandFlags": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/TerraformCliOptionFlag"
                }
              },
              "spec": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudCliExecutionData"
              },
              "skipStateStorage": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "createRemoteWorkspaceWithPrefix": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for TerraformCloudCliStepConfiguration"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerraformCliOptionFlag": {
            "title": "TerraformCliOptionFlag",
            "type": "object",
            "required": [
              "commandType",
              "flag"
            ],
            "properties": {
              "commandType": {
                "type": "string",
                "enum": [
                  "INIT",
                  "WORKSPACE",
                  "REFRESH",
                  "PLAN",
                  "APPLY",
                  "DESTROY"
                ]
              },
              "flag": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerraformCliOptionFlag"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerraformCloudCliExecutionData": {
            "title": "TerraformCloudCliExecutionData",
            "type": "object",
            "required": [
              "configFiles"
            ],
            "properties": {
              "backendConfig": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformBackendConfig"
              },
              "configFiles": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformConfigFilesWrapper"
              },
              "environmentVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "targets": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "varFiles": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/TerraformVarFileWrapper"
                }
              },
              "description": {
                "desc": "This is the description for TerraformCloudCliExecutionData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerraformBackendConfig": {
            "title": "TerraformBackendConfig",
            "type": "object",
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerraformBackendConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Inline"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/InlineTerraformBackendConfigSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Remote"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/RemoteTerraformBackendConfigSpec"
                    }
                  }
                }
              }
            ]
          },
          "InlineTerraformBackendConfigSpec": {
            "title": "InlineTerraformBackendConfigSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformBackendConfigSpec"
              },
              {
                "type": "object",
                "properties": {
                  "content": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for InlineTerraformBackendConfigSpec"
              }
            }
          },
          "TerraformBackendConfigSpec": {
            "title": "TerraformBackendConfigSpec",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TerraformBackendConfigSpec"
              }
            }
          },
          "RemoteTerraformBackendConfigSpec": {
            "title": "RemoteTerraformBackendConfigSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformBackendConfigSpec"
              },
              {
                "type": "object",
                "required": [
                  "store"
                ],
                "properties": {
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for RemoteTerraformBackendConfigSpec"
              }
            }
          },
          "StoreConfigWrapper": {
            "title": "StoreConfigWrapper",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "metadata": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CustomRemote",
                  "Git",
                  "Github",
                  "Bitbucket",
                  "GitLab",
                  "Http",
                  "S3",
                  "Gcs",
                  "Inline",
                  "Artifactory",
                  "S3Url",
                  "InheritFromManifest",
                  "Harness",
                  "OciHelmChart",
                  "AzureRepo",
                  "HarnessCode"
                ]
              },
              "description": {
                "desc": "This is the description for StoreConfigWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Artifactory"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ArtifactoryStoreConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureRepo"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureRepoStore"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Bitbucket"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/BitbucketStore"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CustomRemote"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/CustomRemoteStoreConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Gcs"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GcsStoreConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Git"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GitStore"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GitLab"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GitLabStore"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Github"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GithubStore"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Harness"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/custom/HarnessStore"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Http"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/HttpStoreConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "InheritFromManifest"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/InheritFromManifestStoreConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Inline"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/InlineStoreConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "OciHelmChart"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/OciHelmChartConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "S3"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/S3StoreConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "S3Url"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/S3UrlStoreConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HarnessCode"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/HarnessCodeStore"
                    }
                  }
                }
              }
            ]
          },
          "ArtifactoryStoreConfig": {
            "title": "ArtifactoryStoreConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "repositoryName"
                ],
                "properties": {
                  "artifactPaths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "repositoryName": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ArtifactoryStoreConfig"
              }
            }
          },
          "StoreConfig": {
            "title": "StoreConfig",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for StoreConfig"
              }
            }
          },
          "AzureRepoStore": {
            "title": "AzureRepoStore",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "gitFetchType"
                ],
                "properties": {
                  "branch": {
                    "type": "string"
                  },
                  "commitId": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "folderPath": {
                    "type": "string"
                  },
                  "gitFetchType": {
                    "type": "string",
                    "enum": [
                      "Branch",
                      "Commit"
                    ]
                  },
                  "paths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "repoName": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "commitId"
                    ]
                  },
                  {
                    "required": [
                      "branch"
                    ]
                  }
                ]
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "folderPath"
                    ]
                  },
                  {
                    "required": [
                      "paths"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AzureRepoStore"
              }
            }
          },
          "BitbucketStore": {
            "title": "BitbucketStore",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "gitFetchType"
                ],
                "properties": {
                  "branch": {
                    "type": "string"
                  },
                  "commitId": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "folderPath": {
                    "type": "string"
                  },
                  "gitFetchType": {
                    "type": "string",
                    "enum": [
                      "Branch",
                      "Commit"
                    ]
                  },
                  "paths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "repoName": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "commitId"
                    ]
                  },
                  {
                    "required": [
                      "branch"
                    ]
                  }
                ]
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "folderPath"
                    ]
                  },
                  {
                    "required": [
                      "paths"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for BitbucketStore"
              }
            }
          },
          "CustomRemoteStoreConfig": {
            "title": "CustomRemoteStoreConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfig"
              },
              {
                "type": "object",
                "required": [
                  "extractionScript",
                  "filePath"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "extractionScript": {
                    "type": "string"
                  },
                  "filePath": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CustomRemoteStoreConfig"
              }
            }
          },
          "GcsStoreConfig": {
            "title": "GcsStoreConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfig"
              },
              {
                "type": "object",
                "properties": {
                  "bucketName": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "folderPath": {
                    "type": "string"
                  },
                  "manifestPath": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GcsStoreConfig"
              }
            }
          },
          "GitStore": {
            "title": "GitStore",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "gitFetchType"
                ],
                "properties": {
                  "branch": {
                    "type": "string"
                  },
                  "commitId": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "folderPath": {
                    "type": "string"
                  },
                  "gitFetchType": {
                    "type": "string",
                    "enum": [
                      "Branch",
                      "Commit"
                    ]
                  },
                  "paths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "repoName": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "commitId"
                    ]
                  },
                  {
                    "required": [
                      "branch"
                    ]
                  }
                ]
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "folderPath"
                    ]
                  },
                  {
                    "required": [
                      "paths"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GitStore"
              }
            }
          },
          "GitLabStore": {
            "title": "GitLabStore",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "gitFetchType"
                ],
                "properties": {
                  "branch": {
                    "type": "string"
                  },
                  "commitId": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "folderPath": {
                    "type": "string"
                  },
                  "gitFetchType": {
                    "type": "string",
                    "enum": [
                      "Branch",
                      "Commit"
                    ]
                  },
                  "paths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "repoName": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "commitId"
                    ]
                  },
                  {
                    "required": [
                      "branch"
                    ]
                  }
                ]
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "folderPath"
                    ]
                  },
                  {
                    "required": [
                      "paths"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GitLabStore"
              }
            }
          },
          "GithubStore": {
            "title": "GithubStore",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "gitFetchType"
                ],
                "properties": {
                  "branch": {
                    "type": "string"
                  },
                  "commitId": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "folderPath": {
                    "type": "string"
                  },
                  "gitFetchType": {
                    "type": "string",
                    "enum": [
                      "Branch",
                      "Commit"
                    ]
                  },
                  "paths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "repoName": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "commitId"
                    ]
                  },
                  {
                    "required": [
                      "branch"
                    ]
                  }
                ]
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "folderPath"
                    ]
                  },
                  {
                    "required": [
                      "paths"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GithubStore"
              }
            }
          },
          "HttpStoreConfig": {
            "title": "HttpStoreConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfig"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for HttpStoreConfig"
              }
            }
          },
          "InheritFromManifestStoreConfig": {
            "title": "InheritFromManifestStoreConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfig"
              },
              {
                "type": "object",
                "properties": {
                  "paths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for InheritFromManifestStoreConfig"
              }
            }
          },
          "InlineStoreConfig": {
            "title": "InlineStoreConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfig"
              },
              {
                "type": "object",
                "required": [
                  "content"
                ],
                "properties": {
                  "content": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for InlineStoreConfig"
              }
            }
          },
          "OciHelmChartConfig": {
            "title": "OciHelmChartConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfig"
              },
              {
                "type": "object",
                "properties": {
                  "basePath": {
                    "type": "string"
                  },
                  "config": {
                    "$ref": "#/definitions/pipeline/steps/cd/OciHelmChartStoreConfigWrapper"
                  },
                  "metadata": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for OciHelmChartConfig"
              }
            }
          },
          "OciHelmChartStoreConfigWrapper": {
            "title": "OciHelmChartStoreConfigWrapper",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "metadata": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Generic",
                  "ECR"
                ]
              },
              "description": {
                "desc": "This is the description for OciHelmChartStoreConfigWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ECR"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/OciHelmChartStoreEcrConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Generic"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/OciHelmChartStoreGenericConfig"
                    }
                  }
                }
              }
            ]
          },
          "OciHelmChartStoreEcrConfig": {
            "title": "OciHelmChartStoreEcrConfig",
            "allOf": [
              {},
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "region"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  },
                  "registryId": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for OciHelmChartStoreEcrConfig"
              }
            }
          },
          "OciHelmChartStoreGenericConfig": {
            "title": "OciHelmChartStoreGenericConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/OciHelmChartStoreConfig"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldString"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for OciHelmChartStoreGenericConfig"
              }
            }
          },
          "OciHelmChartStoreConfig": {
            "title": "OciHelmChartStoreConfig",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for OciHelmChartStoreConfig"
              }
            }
          },
          "ParameterFieldString": {
            "title": "ParameterFieldString",
            "type": "object",
            "properties": {
              "defaultValue": {
                "type": "string"
              },
              "executionInput": {
                "type": "boolean"
              },
              "expression": {
                "type": "boolean"
              },
              "expressionValue": {
                "type": "string"
              },
              "inputSetValidator": {
                "$ref": "#/definitions/pipeline/common/InputSetValidator"
              },
              "jsonResponseField": {
                "type": "boolean"
              },
              "responseField": {
                "type": "string"
              },
              "typeString": {
                "type": "boolean"
              },
              "value": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ParameterFieldString"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "S3StoreConfig": {
            "title": "S3StoreConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfig"
              },
              {
                "type": "object",
                "properties": {
                  "bucketName": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "folderPath": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "paths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "region": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for S3StoreConfig"
              }
            }
          },
          "S3UrlStoreConfig": {
            "title": "S3UrlStoreConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "region",
                  "urls"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  },
                  "urls": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for S3UrlStoreConfig"
              }
            }
          },
          "HarnessCodeStore": {
            "title": "HarnessCodeStore",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfig"
              },
              {
                "type": "object",
                "required": [
                  "repoName",
                  "gitFetchType"
                ],
                "properties": {
                  "branch": {
                    "type": "string"
                  },
                  "commitId": {
                    "type": "string"
                  },
                  "folderPath": {
                    "type": "string"
                  },
                  "gitFetchType": {
                    "type": "string",
                    "enum": [
                      "Branch",
                      "Commit"
                    ]
                  },
                  "paths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "repoName": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "commitId"
                    ]
                  },
                  {
                    "required": [
                      "branch"
                    ]
                  }
                ]
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "folderPath"
                    ]
                  },
                  {
                    "required": [
                      "paths"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for HarnessCodeStore"
              }
            }
          },
          "TerraformConfigFilesWrapper": {
            "title": "TerraformConfigFilesWrapper",
            "type": "object",
            "required": [
              "store"
            ],
            "properties": {
              "moduleSource": {
                "$ref": "#/definitions/pipeline/steps/cd/ModuleSource"
              },
              "store": {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
              },
              "description": {
                "desc": "This is the description for TerraformConfigFilesWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ModuleSource": {
            "title": "ModuleSource",
            "type": "object",
            "required": [
              "useConnectorCredentials"
            ],
            "properties": {
              "useConnectorCredentials": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                  },
                  {
                    "type": "string"
                  },
                  {
                    "type": "boolean"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for ModuleSource"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerraformVarFileWrapper": {
            "title": "TerraformVarFileWrapper",
            "type": "object",
            "required": [
              "varFile"
            ],
            "properties": {
              "varFile": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformVarFile"
              },
              "description": {
                "desc": "This is the description for TerraformVarFileWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerraformVarFile": {
            "title": "TerraformVarFile",
            "type": "object",
            "required": [
              "identifier",
              "spec",
              "type"
            ],
            "properties": {
              "identifier": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerraformVarFile"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Inline"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/InlineTerraformVarFileSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Remote"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/RemoteTerraformVarFileSpec"
                    }
                  }
                }
              }
            ]
          },
          "InlineTerraformVarFileSpec": {
            "title": "InlineTerraformVarFileSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformVarFileSpec"
              },
              {
                "type": "object",
                "properties": {
                  "content": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for InlineTerraformVarFileSpec"
              }
            }
          },
          "TerraformVarFileSpec": {
            "title": "TerraformVarFileSpec",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerraformVarFileSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "RemoteTerraformVarFileSpec": {
            "title": "RemoteTerraformVarFileSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformVarFileSpec"
              },
              {
                "type": "object",
                "required": [
                  "store"
                ],
                "properties": {
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  },
                  "optional": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for RemoteTerraformVarFileSpec"
              }
            }
          },
          "TerraformStepConfiguration": {
            "title": "TerraformStepConfiguration",
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "commandFlags": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/TerraformCliOptionFlag"
                }
              },
              "skipRefreshCommand": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "spec": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformExecutionData"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Inline",
                  "InheritFromPlan",
                  "InheritFromApply"
                ]
              },
              "skipStateStorage": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "createRemoteWorkspaceWithPrefix": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for TerraformStepConfiguration"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerraformExecutionData": {
            "title": "TerraformExecutionData",
            "type": "object",
            "required": [
              "configFiles"
            ],
            "properties": {
              "backendConfig": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformBackendConfig"
              },
              "configFiles": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformConfigFilesWrapper"
              },
              "environmentVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "providerCredential": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformProviderCredential"
              },
              "targets": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "varFiles": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/TerraformVarFileWrapper"
                }
              },
              "workspace": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerraformExecutionData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerraformProviderCredential": {
            "title": "TerraformProviderCredential",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Aws",
                  "Azure",
                  "Gcp"
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Aws"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AWSIAMRoleCredentialSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Azure"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerraformAzureProviderCredentialSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Gcp"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerraformGcpProviderCredentialSpec"
                    }
                  }
                }
              }
            ]
          },
          "AWSIAMRoleCredentialSpec": {
            "title": "AWSIAMRoleCredentialSpec",
            "type": "object",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformProviderCredentialSpec"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  },
                  "roleArn": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerraformProviderCredentialSpec": {
            "title": "TerraformProviderCredentialSpec",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerraformAzureProviderCredentialSpec": {
            "title": "TerraformAzureProviderCredentialSpec",
            "type": "object",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformProviderCredentialSpec"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "subscriptionId"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "subscriptionId": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerraformGcpProviderCredentialSpec": {
            "title": "TerraformGcpProviderCredentialSpec",
            "type": "object",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformProviderCredentialSpec"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "project"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "project": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "JenkinsBuildStepNode": {
            "title": "JenkinsBuildStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for JenkinsBuildStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "JenkinsBuild"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "JenkinsBuild"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/JenkinsBuildStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "JenkinsBuildStepInfo": {
            "title": "JenkinsBuildStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "jobName"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string",
                    "metadata": {
                      "inputProperties": {
                        "type": "string",
                        "internalType": "jenkins_connector"
                      }
                    }
                  },
                  "consoleLogPollFrequency": {
                    "type": "string",
                    "pattern": "^(([1-9])+\\d+[s])|(([5-9])+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(<\\+input>.*)|(.*<\\+.*>.*)|(^$))$"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "jobName": {
                    "type": "string",
                    "metadata": {
                      "inputProperties": {
                        "type": "string",
                        "internalType": "jenkins_job_name",
                        "dependsOn": [
                          "connectorRef"
                        ]
                      }
                    }
                  },
                  "jobParameter": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/JenkinsParameterField"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ],
                    "metadata": {
                      "inputProperties": {
                        "type": "object",
                        "internalType": "jenkins_job_parameter",
                        "dependsOn": [
                          "connectorRef",
                          "jobName"
                        ]
                      }
                    }
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "unstableStatusAsSuccess": {
                    "type": "boolean"
                  },
                  "useConnectorUrlForJobExecution": {
                    "type": "boolean"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectorRef",
              "jobName"
            ],
            "properties": {
              "connectorRef": {
                "type": "string",
                "metadata": {
                  "inputProperties": {
                    "type": "string",
                    "internalType": "jenkins_connector"
                  }
                }
              },
              "consoleLogPollFrequency": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(([5-9])+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(<\\+input>.*)|(.*<\\+.*>.*)|(^$))$"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "jobName": {
                "type": "string",
                "metadata": {
                  "inputProperties": {
                    "type": "string",
                    "internalType": "jenkins_job_name",
                    "dependsOn": [
                      "connectorRef"
                    ]
                  }
                }
              },
              "jobParameter": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/JenkinsParameterField"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ],
                "metadata": {
                  "inputProperties": {
                    "type": "object",
                    "internalType": "jenkins_job_parameter",
                    "dependsOn": [
                      "connectorRef",
                      "jobName"
                    ]
                  }
                }
              },
              "metadata": {
                "type": "string"
              },
              "unstableStatusAsSuccess": {
                "type": "boolean"
              },
              "useConnectorUrlForJobExecution": {
                "type": "boolean"
              },
              "description": {
                "desc": "This is the description for JenkinsBuildStepInfo"
              }
            }
          },
          "JenkinsParameterField": {
            "title": "JenkinsParameterField",
            "type": "object",
            "required": [
              "value"
            ],
            "properties": {
              "metadata": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "String",
                  "Number"
                ]
              },
              "value": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for JenkinsParameterField"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerragruntApplyStepNode": {
            "title": "TerragruntApplyStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TerragruntApplyStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "TerragruntApply"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TerragruntApply"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerragruntApplyStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TerragruntApplyStepInfo": {
            "title": "TerragruntApplyStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "configuration",
                  "provisionerIdentifier"
                ],
                "properties": {
                  "configuration": {
                    "$ref": "#/definitions/pipeline/steps/cd/TerragruntStepConfiguration"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "provisionerIdentifier": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "configuration",
              "provisionerIdentifier"
            ],
            "properties": {
              "configuration": {
                "$ref": "#/definitions/pipeline/steps/cd/TerragruntStepConfiguration"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "metadata": {
                "type": "string"
              },
              "provisionerIdentifier": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerragruntApplyStepInfo"
              }
            }
          },
          "TerragruntStepConfiguration": {
            "title": "TerragruntStepConfiguration",
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "commandFlags": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/TerragruntCliOptionFlag"
                }
              },
              "spec": {
                "$ref": "#/definitions/pipeline/steps/cd/TerragruntExecutionData"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Inline",
                  "InheritFromPlan",
                  "InheritFromApply"
                ]
              },
              "description": {
                "desc": "This is the description for TerragruntStepConfiguration"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerragruntCliOptionFlag": {
            "title": "TerragruntCliOptionFlag",
            "type": "object",
            "required": [
              "commandType",
              "flag"
            ],
            "properties": {
              "commandType": {
                "type": "string",
                "enum": [
                  "INIT",
                  "WORKSPACE",
                  "PLAN",
                  "APPLY",
                  "DESTROY",
                  "OUTPUT"
                ]
              },
              "flag": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerragruntCliOptionFlag"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerragruntExecutionData": {
            "title": "TerragruntExecutionData",
            "type": "object",
            "required": [
              "configFiles",
              "moduleConfig"
            ],
            "properties": {
              "backendConfig": {
                "$ref": "#/definitions/pipeline/steps/cd/TerragruntBackendConfig"
              },
              "configFiles": {
                "$ref": "#/definitions/pipeline/steps/cd/TerragruntConfigFilesWrapper"
              },
              "environmentVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "moduleConfig": {
                "$ref": "#/definitions/pipeline/steps/cd/TerragruntModuleConfig"
              },
              "targets": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "varFiles": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/TerragruntVarFileWrapper"
                }
              },
              "workspace": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerragruntExecutionData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerragruntBackendConfig": {
            "title": "TerragruntBackendConfig",
            "type": "object",
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerragruntBackendConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Inline"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/InlineTerragruntBackendConfigSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Remote"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/RemoteTerragruntBackendConfigSpec"
                    }
                  }
                }
              }
            ]
          },
          "InlineTerragruntBackendConfigSpec": {
            "title": "InlineTerragruntBackendConfigSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TerragruntBackendConfigSpec"
              },
              {
                "type": "object",
                "properties": {
                  "content": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for InlineTerragruntBackendConfigSpec"
              }
            }
          },
          "TerragruntBackendConfigSpec": {
            "title": "TerragruntBackendConfigSpec",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TerragruntBackendConfigSpec"
              }
            }
          },
          "RemoteTerragruntBackendConfigSpec": {
            "title": "RemoteTerragruntBackendConfigSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TerragruntBackendConfigSpec"
              },
              {
                "type": "object",
                "required": [
                  "store"
                ],
                "properties": {
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for RemoteTerragruntBackendConfigSpec"
              }
            }
          },
          "TerragruntConfigFilesWrapper": {
            "title": "TerragruntConfigFilesWrapper",
            "type": "object",
            "required": [
              "store"
            ],
            "properties": {
              "moduleSource": {
                "$ref": "#/definitions/pipeline/steps/cd/ModuleSource"
              },
              "store": {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
              },
              "description": {
                "desc": "This is the description for TerragruntConfigFilesWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerragruntModuleConfig": {
            "title": "TerragruntModuleConfig",
            "type": "object",
            "required": [
              "path",
              "terragruntRunType"
            ],
            "properties": {
              "path": {
                "type": "string"
              },
              "terragruntRunType": {
                "type": "string",
                "enum": [
                  "RunAll",
                  "RunModule"
                ]
              },
              "description": {
                "desc": "This is the description for TerragruntModuleConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerragruntVarFileWrapper": {
            "title": "TerragruntVarFileWrapper",
            "type": "object",
            "required": [
              "varFile"
            ],
            "properties": {
              "varFile": {
                "$ref": "#/definitions/pipeline/steps/cd/TerragruntVarFile"
              },
              "description": {
                "desc": "This is the description for TerragruntVarFileWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerragruntVarFile": {
            "title": "TerragruntVarFile",
            "type": "object",
            "required": [
              "identifier",
              "spec",
              "type"
            ],
            "properties": {
              "identifier": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerragruntVarFile"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Inline"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/InlineTerragruntVarFileSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Remote"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/RemoteTerragruntVarFileSpec"
                    }
                  }
                }
              }
            ]
          },
          "InlineTerragruntVarFileSpec": {
            "title": "InlineTerragruntVarFileSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TerragruntVarFileSpec"
              },
              {
                "type": "object",
                "properties": {
                  "content": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for InlineTerragruntVarFileSpec"
              }
            }
          },
          "TerragruntVarFileSpec": {
            "title": "TerragruntVarFileSpec",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerragruntVarFileSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "RemoteTerragruntVarFileSpec": {
            "title": "RemoteTerragruntVarFileSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TerragruntVarFileSpec"
              },
              {
                "type": "object",
                "required": [
                  "store"
                ],
                "properties": {
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for RemoteTerragruntVarFileSpec"
              }
            }
          },
          "TasRollingRollbackStepNode": {
            "title": "TasRollingRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TasRollingRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "TasRollingRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TasRollingRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TasRollingRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TasRollingRollbackStepInfo": {
            "title": "TasRollingRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for TasRollingRollbackStepInfo"
              }
            }
          },
          "TerraformPlanStepNode": {
            "title": "TerraformPlanStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TerraformPlanStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "TerraformPlan"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TerraformPlan"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerraformPlanStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TerraformPlanStepInfo": {
            "title": "TerraformPlanStepInfo",
            "allOf": [
              {
                "oneOf": [
                  {
                    "required": [
                      "configuration"
                    ]
                  },
                  {
                    "required": [
                      "cloudCliConfiguration"
                    ]
                  }
                ],
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "provisionerIdentifier"
                ],
                "properties": {
                  "cloudCliConfiguration": {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudCliPlanExecutionData"
                  },
                  "configuration": {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformPlanExecutionData"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "provisionerIdentifier": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "configuration"
                    ]
                  },
                  {
                    "required": [
                      "cloudCliConfiguration"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "provisionerIdentifier"
            ],
            "properties": {
              "cloudCliConfiguration": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudCliPlanExecutionData"
              },
              "configuration": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformPlanExecutionData"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "provisionerIdentifier": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerraformPlanStepInfo"
              }
            }
          },
          "TerraformCloudCliPlanExecutionData": {
            "title": "TerraformCloudCliPlanExecutionData",
            "type": "object",
            "required": [
              "command",
              "configFiles"
            ],
            "properties": {
              "backendConfig": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformBackendConfig"
              },
              "command": {
                "type": "string",
                "enum": [
                  "Apply",
                  "Destroy"
                ]
              },
              "commandFlags": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/TerraformCliOptionFlag"
                }
              },
              "configFiles": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformConfigFilesWrapper"
              },
              "environmentVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "targets": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "varFiles": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/TerraformVarFileWrapper"
                }
              },
              "skipStateStorage": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "createRemoteWorkspaceWithPrefix": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for TerraformCloudCliPlanExecutionData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerraformPlanExecutionData": {
            "title": "TerraformPlanExecutionData",
            "type": "object",
            "required": [
              "command",
              "configFiles",
              "secretManagerRef"
            ],
            "properties": {
              "backendConfig": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformBackendConfig"
              },
              "command": {
                "type": "string",
                "enum": [
                  "Apply",
                  "Destroy"
                ]
              },
              "commandFlags": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/TerraformCliOptionFlag"
                }
              },
              "configFiles": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformConfigFilesWrapper"
              },
              "environmentVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "providerCredential": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformProviderCredential"
              },
              "exportTerraformHumanReadablePlan": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "exportTerraformPlanJson": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "secretManagerRef": {
                "type": "string"
              },
              "skipRefreshCommand": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "targets": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "varFiles": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/TerraformVarFileWrapper"
                }
              },
              "workspace": {
                "type": "string"
              },
              "skipStateStorage": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "storeTfPlanOnDelegate": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "createRemoteWorkspaceWithPrefix": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for TerraformPlanExecutionData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "AzureWebAppRollbackStepNode": {
            "title": "AzureWebAppRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AzureWebAppRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AzureWebAppRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureWebAppRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureWebAppRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AzureWebAppRollbackStepInfo": {
            "title": "AzureWebAppRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "skipSteadyStateCheck": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "skipSteadyStateCheck": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AzureWebAppRollbackStepInfo"
              }
            }
          },
          "GoogleFunctionsDeployStepNode": {
            "title": "GoogleFunctionsDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GoogleFunctionsDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DeployCloudFunction"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DeployCloudFunction"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleFunctionsDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GoogleFunctionsDeployStepInfo": {
            "title": "GoogleFunctionsDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "updateFieldMask": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "updateFieldMask": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for GoogleFunctionsDeployStepInfo"
              }
            }
          },
          "K8sBGStageScaleDownStepNode": {
            "title": "K8sBGStageScaleDownStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for K8sBGStageScaleDownStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "K8sBlueGreenStageScaleDown"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "K8sBlueGreenStageScaleDown"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sBGStageScaleDownStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "K8sBGStageScaleDownStepInfo": {
            "title": "K8sBGStageScaleDownStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for K8sBGStageScaleDownStepInfo"
              }
            }
          },
          "AsgCanaryDeployStepNode": {
            "title": "AsgCanaryDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AsgCanaryDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AsgCanaryDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgCanaryDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgCanaryDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AsgCanaryDeployStepInfo": {
            "title": "AsgCanaryDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "instanceSelection"
                ],
                "properties": {
                  "asgName": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "instanceSelection": {
                    "$ref": "#/definitions/pipeline/steps/cd/Capacity"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "instanceSelection"
            ],
            "properties": {
              "asgName": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "instanceSelection": {
                "$ref": "#/definitions/pipeline/steps/cd/Capacity"
              },
              "description": {
                "desc": "This is the description for AsgCanaryDeployStepInfo"
              }
            }
          },
          "SyncStepNode": {
            "title": "SyncStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SyncStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GitOpsSync"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GitOpsSync"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/SyncStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SyncStepInfo": {
            "title": "SyncStepInfo",
            "type": "object",
            "required": [
              "applyOnly",
              "dryRun",
              "forceApply",
              "prune",
              "syncOptions"
            ],
            "properties": {
              "applicationsList": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/AgentApplicationTargets"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "applicationRegex": {
                "type": "string"
              },
              "applicationLabels": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "applyOnly": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "dryRun": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "forceApply": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "prune": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "retryStrategy": {
                "$ref": "#/definitions/pipeline/steps/cd/SyncRetryStrategy"
              },
              "syncOptions": {
                "$ref": "#/definitions/pipeline/steps/cd/SyncOptions"
              },
              "waitTillHealthy": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "failOnTimeout": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "showResourceProgress": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "autoPromoteRolloutBehavior": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "promote-full",
                      "resume"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "degradedStateTimeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "dependencies": {
                  "failOnTimeout": [
                    "waitTillHealthy"
                  ],
                  "degradedStateTimeout": [
                    "waitTillHealthy"
                  ]
                }
              },
              {
                "anyOf": [
                  {
                    "oneOf": [
                      {
                        "required": [
                          "applicationsList"
                        ]
                      },
                      {
                        "required": [
                          "applicationRegex"
                        ]
                      },
                      {
                        "required": [
                          "applicationLabels"
                        ]
                      }
                    ]
                  },
                  {
                    "not": {
                      "anyOf": [
                        {
                          "required": [
                            "applicationsList"
                          ]
                        },
                        {
                          "required": [
                            "applicationRegex"
                          ]
                        },
                        {
                          "required": [
                            "applicationLabels"
                          ]
                        }
                      ]
                    }
                  }
                ]
              }
            ],
            "$ref": "#/definitions/pipeline/common/StepSpecType"
          },
          "AgentApplicationTargets": {
            "title": "AgentApplicationTargets",
            "type": "object",
            "required": [
              "agentId",
              "applicationName"
            ],
            "properties": {
              "agentId": {
                "type": "string"
              },
              "applicationName": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for AgentApplicationTargets"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "SyncRetryStrategy": {
            "title": "SyncRetryStrategy",
            "type": "object",
            "properties": {
              "baseBackoffDuration": {
                "type": "string"
              },
              "increaseBackoffByFactor": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "limit": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "maxBackoffDuration": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for SyncRetryStrategy"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "SyncOptions": {
            "title": "SyncOptions",
            "type": "object",
            "required": [
              "applyOutOfSyncOnly",
              "autoCreateNamespace",
              "prunePropagationPolicy",
              "pruneResourcesAtLast",
              "replaceResources",
              "skipSchemaValidation"
            ],
            "properties": {
              "applyOutOfSyncOnly": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "autoCreateNamespace": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "prunePropagationPolicy": {
                "type": "string",
                "enum": [
                  "foreground",
                  "background",
                  "orphan"
                ]
              },
              "pruneResourcesAtLast": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "replaceResources": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "skipSchemaValidation": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "serverSideApply": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "respectIgnoreDifferences": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for SyncOptions"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "GitOpsRolloutStepNode": {
            "title": "GitOpsRolloutStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GitOpsRolloutStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GitOpsRollout"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GitOpsRollout"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GitOpsRolloutStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GitOpsRolloutStepInfo": {
            "title": "GitOpsRolloutStepInfo",
            "type": "object",
            "required": [
              "agentIdentifier",
              "appName",
              "namespace",
              "rolloutName"
            ],
            "properties": {
              "agentIdentifier": {
                "type": "string"
              },
              "appName": {
                "type": "string"
              },
              "namespace": {
                "type": "string"
              },
              "rolloutName": {
                "type": "string"
              },
              "autoPromoteRolloutBehavior": {
                "description": "Deprecated: Use autoRolloutAction instead.",
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "promote-full",
                      "resume",
                      "retry",
                      "abort",
                      "restart"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "autoRolloutAction": {
                "description": "The rollout action to perform automatically after the wait phase is over (if specified).",
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "promote-full",
                      "resume",
                      "retry",
                      "abort",
                      "restart"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "waitUntilHealthStatus": {
                "description": "Configuration for waiting until a specific health status is reached.",
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/WaitUntilHealthStatusConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "failOnTimeout": {
                "description": "Whether to fail the step if timeout is reached.",
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "$ref": "#/definitions/pipeline/common/StepSpecType"
          },
          "WaitUntilHealthStatusConfig": {
            "title": "WaitUntilHealthStatusConfig",
            "description": "Configuration for waitUntilHealthStatus feature in GitOps Rollout step. Allows waiting for a specific rollout health state with optional health message matching (supports regex).",
            "type": "object",
            "properties": {
              "healthStatus": {
                "description": "The health status to wait for.",
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Healthy",
                      "Progressing",
                      "Degraded",
                      "Suspended",
                      "Missing",
                      "Unknown"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "healthMessage": {
                "description": "Optional health message pattern to match (supports regex). If specified, will wait until both healthStatus matches AND healthMessage matches this pattern.",
                "type": "string"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "RevertPRStepNode": {
            "title": "RevertPRStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for RevertPRStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "RevertPR"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "RevertPR"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/RevertPRStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "RevertPRStepInfo": {
            "title": "RevertPRStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "commitId"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commitId": {
                    "type": "string"
                  },
                  "prTitle": {
                    "type": "string"
                  },
                  "disableGitRestraint": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "commitId"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "commitId": {
                "type": "string"
              },
              "prTitle": {
                "type": "string"
              },
              "disableGitRestraint": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for RevertPRStepInfo"
              }
            }
          },
          "K8sBlueGreenStepNode": {
            "title": "K8sBlueGreenStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for K8sBlueGreenStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "K8sBlueGreenDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "K8sBlueGreenDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sBlueGreenStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "K8sBlueGreenStepInfo": {
            "title": "K8sBlueGreenStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "commandFlags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/K8sStepCommandFlag"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "pruningEnabled": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "skipDeploymentIfSameManifest": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "skipDryRun": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "trafficRouting": {
                    "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingSpec"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "commandFlags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sStepCommandFlag"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "pruningEnabled": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "skipDeploymentIfSameManifest": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "skipDryRun": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "trafficRouting": {
                "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingSpec"
              },
              "description": {
                "desc": "This is the description for K8sBlueGreenStepInfo"
              }
            }
          },
          "K8sStepCommandFlag": {
            "title": "K8sStepCommandFlag",
            "type": "object",
            "required": [
              "commandType"
            ],
            "properties": {
              "commandType": {
                "type": "string",
                "enum": [
                  "Apply"
                ]
              },
              "flag": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for K8sStepCommandFlag"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "K8sTrafficRoutingSpec": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "title": "K8sTrafficRoutingSpec",
            "type": "object",
            "required": [
              "provider",
              "spec"
            ],
            "properties": {
              "provider": {
                "type": "string",
                "enum": [
                  "smi",
                  "istio"
                ]
              },
              "spec": {
                "type": "object"
              }
            },
            "allOf": [
              {
                "if": {
                  "properties": {
                    "provider": {
                      "const": "smi"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/SMIProviderSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "provider": {
                      "const": "istio"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/IstioProviderSpec"
                    }
                  }
                }
              }
            ]
          },
          "SMIProviderSpec": {
            "title": "SMIProviderSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingProviderBaseSpec"
              },
              {
                "type": "object",
                "properties": {
                  "rootService": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "K8sTrafficRoutingProviderBaseSpec": {
            "title": "K8sTrafficRoutingProviderBaseSpec",
            "type": "object",
            "required": [
              "name",
              "routes"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "routes": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/RouteSpec"
                    },
                    "minItems": 1
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "RouteSpec": {
            "title": "RouteSpec",
            "type": "object",
            "required": [
              "route"
            ],
            "properties": {
              "route": {
                "allOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/RouteSpecBase"
                  },
                  {
                    "type": "object",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "http"
                        ]
                      },
                      "rules": {
                        "oneOf": [
                          {
                            "type": "array",
                            "items": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "required": [
                                    "rule"
                                  ],
                                  "properties": {
                                    "rule": {
                                      "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingRouteRule"
                                    }
                                  },
                                  "$schema": "http://json-schema.org/draft-07/schema#"
                                },
                                {
                                  "type": "string",
                                  "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                                  "minLength": 1
                                }
                              ]
                            },
                            "minItems": 1
                          },
                          {
                            "type": "string",
                            "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                            "minLength": 1
                          }
                        ]
                      }
                    },
                    "$schema": "http://json-schema.org/draft-07/schema#"
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "RouteSpecBase": {
            "title": "RouteSpecBase",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingDestinations"
              },
              {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  }
                },
                "$schema": "http://json-schema.org/draft-07/schema#"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "K8sTrafficRoutingDestinations": {
            "title": "K8sTrafficRoutingDestinations",
            "type": "object",
            "required": [
              "destinations"
            ],
            "properties": {
              "destinations": {
                "oneOf": [
                  {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingDestination"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "K8sTrafficRoutingDestination": {
            "title": "K8sTrafficRoutingDestination",
            "type": "object",
            "required": [
              "destination"
            ],
            "properties": {
              "destination": {
                "type": "object",
                "required": [
                  "host"
                ],
                "properties": {
                  "host": {
                    "type": "string",
                    "minLength": 1
                  },
                  "weight": {
                    "oneOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "port": {
                    "oneOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                },
                "$schema": "http://json-schema.org/draft-07/schema#"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "K8sTrafficRoutingRouteRule": {
            "title": "K8sTrafficRoutingRouteRule",
            "type": "object",
            "required": [
              "type",
              "spec"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "uri",
                  "method",
                  "headers",
                  "port",
                  "scheme",
                  "authority"
                ]
              },
              "spec": {
                "type": "object"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "uri"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingRuleURISpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "method"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingRuleMethodSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "headers"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingRuleHeadersSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "port"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingRulePortSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "scheme"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingRuleSchemeSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "authority"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingRuleAuthoritySpec"
                    }
                  }
                }
              }
            ]
          },
          "K8sTrafficRoutingRuleURISpec": {
            "title": "K8sTrafficRoutingRuleURISpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingRouteRuleMatchType"
              },
              {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  }
                },
                "$schema": "http://json-schema.org/draft-07/schema#"
              }
            ]
          },
          "K8sTrafficRoutingRouteRuleMatchType": {
            "title": "K8sTrafficRoutingRouteRuleMatchType",
            "type": "object",
            "properties": {
              "matchType": {
                "type": "string",
                "enum": [
                  "exact",
                  "prefix",
                  "regex"
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "K8sTrafficRoutingRuleMethodSpec": {
            "title": "K8sTrafficRoutingRuleMethodSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingRouteRuleMatchType"
              },
              {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "enum": [
                      "GET",
                      "POST",
                      "PUT",
                      "DELETE",
                      "HEAD",
                      "CONNECT",
                      "OPTION",
                      "TRACE",
                      "PATCH"
                    ]
                  }
                },
                "$schema": "http://json-schema.org/draft-07/schema#"
              }
            ]
          },
          "K8sTrafficRoutingRuleHeadersSpec": {
            "title": "K8sTrafficRoutingRuleHeadersSpec",
            "type": "object",
            "required": [
              "values"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "values": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingRouteRuleMatchType"
                    },
                    {
                      "type": "object",
                      "required": [
                        "key"
                      ],
                      "properties": {
                        "key": {
                          "type": "string"
                        },
                        "value": {
                          "type": "string"
                        },
                        "$schema": "http://json-schema.org/draft-07/schema#"
                      }
                    }
                  ]
                },
                "minItems": 1
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "K8sTrafficRoutingRulePortSpec": {
            "title": "K8sTrafficRoutingRulePortSpec",
            "type": "object",
            "required": [
              "value"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "value": {
                "oneOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "K8sTrafficRoutingRuleSchemeSpec": {
            "title": "K8sTrafficRoutingRuleSchemeSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingRouteRuleMatchType"
              },
              {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  }
                },
                "$schema": "http://json-schema.org/draft-07/schema#"
              }
            ]
          },
          "K8sTrafficRoutingRuleAuthoritySpec": {
            "title": "K8sTrafficRoutingRuleAuthoritySpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingRouteRuleMatchType"
              },
              {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  }
                },
                "$schema": "http://json-schema.org/draft-07/schema#"
              }
            ]
          },
          "IstioProviderSpec": {
            "title": "IstioProviderSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingProviderBaseSpec"
              },
              {
                "type": "object",
                "properties": {
                  "gateways": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        },
                        "minItems": 1
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "hosts": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        },
                        "minItems": 1
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "delegateService": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerraformRollbackStepNode": {
            "title": "TerraformRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TerraformRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "TerraformRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TerraformRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerraformRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TerraformRollbackStepInfo": {
            "title": "TerraformRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "provisionerIdentifier"
                ],
                "properties": {
                  "commandFlags": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerraformCliOptionFlag"
                    }
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "provisionerIdentifier": {
                    "type": "string"
                  },
                  "skipRefreshCommand": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "provisionerIdentifier"
            ],
            "properties": {
              "commandFlags": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/TerraformCliOptionFlag"
                }
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "provisionerIdentifier": {
                "type": "string"
              },
              "skipRefreshCommand": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for TerraformRollbackStepInfo"
              }
            }
          },
          "EcsBlueGreenCreateServiceStepNode": {
            "title": "EcsBlueGreenCreateServiceStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for EcsBlueGreenCreateServiceStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "EcsBlueGreenCreateService"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsBlueGreenCreateService"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsBlueGreenCreateServiceStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "EcsBlueGreenCreateServiceStepInfo": {
            "title": "EcsBlueGreenCreateServiceStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "loadBalancer",
                  "prodListener",
                  "prodListenerRuleArn"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "enableAutoScalingInSwapStep": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "loadBalancer": {
                    "type": "string"
                  },
                  "prodListener": {
                    "type": "string"
                  },
                  "prodListenerRuleArn": {
                    "type": "string"
                  },
                  "sameAsAlreadyRunningInstances": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "stageListener": {
                    "type": "string"
                  },
                  "stageListenerRuleArn": {
                    "type": "string"
                  },
                  "updateGreenService": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "stageTargetGroupArn": {
                    "type": "string"
                  },
                  "isTrafficShift": {
                    "type": "boolean"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "loadBalancer",
              "prodListener",
              "prodListenerRuleArn"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "enableAutoScalingInSwapStep": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "loadBalancer": {
                "type": "string"
              },
              "prodListener": {
                "type": "string"
              },
              "prodListenerRuleArn": {
                "type": "string"
              },
              "sameAsAlreadyRunningInstances": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "stageListener": {
                "type": "string"
              },
              "stageListenerRuleArn": {
                "type": "string"
              },
              "updateGreenService": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "stageTargetGroupArn": {
                "type": "string"
              },
              "isTrafficShift": {
                "type": "boolean"
              },
              "description": {
                "desc": "This is the description for EcsBlueGreenCreateServiceStepInfo"
              }
            }
          },
          "EcsUpgradeContainerStepNode": {
            "title": "EcsUpgradeContainerStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for EcsUpgradeContainerStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "EcsUpgradeContainer"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsUpgradeContainer"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsUpgradeContainerStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "EcsUpgradeContainerStepInfo": {
            "title": "EcsUpgradeContainerStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "newServiceInstanceCount",
                  "newServiceInstanceUnit"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "downsizeOldServiceInstanceCount": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "downsizeOldServiceInstanceUnit": {
                    "type": "string"
                  },
                  "newServiceInstanceCount": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "newServiceInstanceUnit": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "newServiceInstanceCount",
              "newServiceInstanceUnit"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "downsizeOldServiceInstanceCount": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "downsizeOldServiceInstanceUnit": {
                "type": "string"
              },
              "newServiceInstanceCount": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "newServiceInstanceUnit": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for EcsUpgradeContainerStepInfo"
              }
            }
          },
          "EcsServiceSetupStepNode": {
            "title": "EcsServiceSetupStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for EcsServiceSetupStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "EcsServiceSetup"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsServiceSetup"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsServiceSetupStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "EcsServiceSetupStepInfo": {
            "title": "EcsServiceSetupStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "resizeStrategy": {
                    "type": "string"
                  },
                  "sameAsAlreadyRunningInstances": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "resizeStrategy": {
                "type": "string"
              },
              "sameAsAlreadyRunningInstances": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for EcsServiceSetupStepInfo"
              }
            }
          },
          "EcsBasicRollbackStepNode": {
            "title": "EcsBasicRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for EcsBasicRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "EcsBasicRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsBasicRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsBasicRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "EcsBasicRollbackStepInfo": {
            "title": "EcsBasicRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for EcsBasicRollbackStepInfo"
              }
            }
          },
          "AsgRollingDeployStepNode": {
            "title": "AsgRollingDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AsgRollingDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AsgRollingDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgRollingDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgRollingDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AsgRollingDeployStepInfo": {
            "title": "AsgRollingDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "asgName": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "instanceWarmup": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "instances": {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgInstances"
                  },
                  "minimumHealthyPercentage": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "maximum": 100
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "maximumHealthyPercentage": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 100,
                        "maximum": 200
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "skipMatching": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "useAlreadyRunningInstances": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "skipInstanceTermination": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "handleInProgressInstanceRefresh": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "asgName": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "instanceWarmup": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "instances": {
                "$ref": "#/definitions/pipeline/steps/cd/AsgInstances"
              },
              "minimumHealthyPercentage": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "maximum": 100
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "maximumHealthyPercentage": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 100,
                    "maximum": 200
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "skipMatching": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "useAlreadyRunningInstances": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "skipInstanceTermination": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "handleInProgressInstanceRefresh": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for AsgRollingDeployStepInfo"
              }
            }
          },
          "AsgInstances": {
            "title": "AsgInstances",
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Fixed",
                  "CurrentRunning"
                ]
              },
              "description": {
                "desc": "This is the description for AsgInstances"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CurrentRunning"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgCurrentRunningInstances"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Fixed"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgFixedInstances"
                    }
                  }
                }
              }
            ]
          },
          "AsgCurrentRunningInstances": {
            "title": "AsgCurrentRunningInstances",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/AsgInstancesSpec"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AsgCurrentRunningInstances"
              }
            }
          },
          "AsgInstancesSpec": {
            "title": "AsgInstancesSpec",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Fixed",
                  "CurrentRunning"
                ]
              },
              "description": {
                "desc": "This is the description for AsgInstancesSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "AsgFixedInstances": {
            "title": "AsgFixedInstances",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/AsgInstancesSpec"
              },
              {
                "type": "object",
                "required": [
                  "desired",
                  "max",
                  "min"
                ],
                "properties": {
                  "desired": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "max": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "min": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AsgFixedInstances"
              }
            }
          },
          "AsgSteadyStateStepNode": {
            "title": "AsgSteadyStateStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AsgSteadyStateStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AsgSteadyState"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgSteadyState"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgSteadyStateStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AsgSteadyStateStepInfo": {
            "title": "AsgSteadyStateStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "asgName": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "pollingInterval": {
                    "type": "string",
                    "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "asgName": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "pollingInterval": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "description": {
                "desc": "This is the description for AsgSteadyStateStepInfo"
              }
            }
          },
          "ShellScriptProvisionStepNode": {
            "title": "ShellScriptProvisionStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ShellScriptProvisionStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ShellScriptProvision"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ShellScriptProvision"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ShellScriptProvisionStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ShellScriptProvisionStepInfo": {
            "title": "ShellScriptProvisionStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "source"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "environmentVariables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  },
                  "source": {
                    "$ref": "#/definitions/pipeline/common/ShellScriptSourceWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "source"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "environmentVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "source": {
                "$ref": "#/definitions/pipeline/common/ShellScriptSourceWrapper"
              },
              "description": {
                "desc": "This is the description for ShellScriptProvisionStepInfo"
              }
            }
          },
          "AzureCreateARMResourceStepNode": {
            "title": "AzureCreateARMResourceStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AzureCreateARMResourceStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AzureCreateARMResource"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureCreateARMResource"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureCreateARMResourceStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AzureCreateARMResourceStepInfo": {
            "title": "AzureCreateARMResourceStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "configuration",
                  "provisionerIdentifier"
                ],
                "properties": {
                  "configuration": {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureCreateARMResourceStepConfiguration"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "provisionerIdentifier": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "configuration",
              "provisionerIdentifier"
            ],
            "properties": {
              "configuration": {
                "$ref": "#/definitions/pipeline/steps/cd/AzureCreateARMResourceStepConfiguration"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "metadata": {
                "type": "string"
              },
              "provisionerIdentifier": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for AzureCreateARMResourceStepInfo"
              }
            }
          },
          "AzureCreateARMResourceStepConfiguration": {
            "title": "AzureCreateARMResourceStepConfiguration",
            "type": "object",
            "required": [
              "connectorRef",
              "scope",
              "template"
            ],
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "parameters": {
                "$ref": "#/definitions/pipeline/steps/cd/AzureCreateARMResourceParameterFile"
              },
              "scope": {
                "$ref": "#/definitions/pipeline/steps/cd/AzureCreateARMResourceStepScope"
              },
              "template": {
                "$ref": "#/definitions/pipeline/steps/cd/AzureTemplateFile"
              },
              "description": {
                "desc": "This is the description for AzureCreateARMResourceStepConfiguration"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "AzureCreateARMResourceParameterFile": {
            "title": "AzureCreateARMResourceParameterFile",
            "type": "object",
            "required": [
              "store"
            ],
            "properties": {
              "store": {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
              },
              "description": {
                "desc": "This is the description for AzureCreateARMResourceParameterFile"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "AzureCreateARMResourceStepScope": {
            "title": "AzureCreateARMResourceStepScope",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for AzureCreateARMResourceStepScope"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ManagementGroup"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureManagementSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ResourceGroup"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureResourceGroupSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Subscription"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureSubscriptionSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Tenant"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureTenantSpec"
                    }
                  }
                }
              }
            ]
          },
          "AzureManagementSpec": {
            "title": "AzureManagementSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/AzureScopeType"
              },
              {
                "type": "object",
                "required": [
                  "location",
                  "managementGroupId"
                ],
                "properties": {
                  "location": {
                    "type": "string"
                  },
                  "managementGroupId": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AzureManagementSpec"
              }
            }
          },
          "AzureScopeType": {
            "title": "AzureScopeType",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AzureScopeType"
              }
            }
          },
          "AzureResourceGroupSpec": {
            "title": "AzureResourceGroupSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/AzureScopeType"
              },
              {
                "type": "object",
                "required": [
                  "resourceGroup",
                  "subscription"
                ],
                "properties": {
                  "mode": {
                    "type": "string",
                    "enum": [
                      "Incremental",
                      "Complete"
                    ]
                  },
                  "resourceGroup": {
                    "type": "string"
                  },
                  "subscription": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AzureResourceGroupSpec"
              }
            }
          },
          "AzureSubscriptionSpec": {
            "title": "AzureSubscriptionSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/AzureScopeType"
              },
              {
                "type": "object",
                "required": [
                  "location",
                  "subscription"
                ],
                "properties": {
                  "location": {
                    "type": "string"
                  },
                  "subscription": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AzureSubscriptionSpec"
              }
            }
          },
          "AzureTenantSpec": {
            "title": "AzureTenantSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/AzureScopeType"
              },
              {
                "type": "object",
                "required": [
                  "location"
                ],
                "properties": {
                  "location": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AzureTenantSpec"
              }
            }
          },
          "AzureTemplateFile": {
            "title": "AzureTemplateFile",
            "type": "object",
            "required": [
              "store"
            ],
            "properties": {
              "store": {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
              },
              "description": {
                "desc": "This is the description for AzureTemplateFile"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "EcsBlueGreenSwapTargetGroupsStepNode": {
            "title": "EcsBlueGreenSwapTargetGroupsStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for EcsBlueGreenSwapTargetGroupsStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "EcsBlueGreenSwapTargetGroups"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsBlueGreenSwapTargetGroups"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsBlueGreenSwapTargetGroupsStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "EcsBlueGreenSwapTargetGroupsStepInfo": {
            "title": "EcsBlueGreenSwapTargetGroupsStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "doNotDownsizeOldService": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "downsizeOldServiceDelayInSecs": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "doNotDownsizeOldService": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "downsizeOldServiceDelayInSecs": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for EcsBlueGreenSwapTargetGroupsStepInfo"
              }
            }
          },
          "FetchInstanceScriptStepNode": {
            "title": "FetchInstanceScriptStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for FetchInstanceScriptStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "FetchInstanceScript"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FetchInstanceScript"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/FetchInstanceScriptStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "FetchInstanceScriptStepInfo": {
            "title": "FetchInstanceScriptStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for FetchInstanceScriptStepInfo"
              }
            }
          },
          "K8sScaleStepNode": {
            "title": "K8sScaleStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for K8sScaleStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "K8sScale"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "K8sScale"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sScaleStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "K8sScaleStepInfo": {
            "title": "K8sScaleStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "instanceSelection",
                  "workload"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "instanceSelection": {
                    "$ref": "#/definitions/pipeline/steps/cd/InstanceSelectionWrapper"
                  },
                  "skipSteadyStateCheck": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "workload": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "instanceSelection",
              "workload"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "instanceSelection": {
                "$ref": "#/definitions/pipeline/steps/cd/InstanceSelectionWrapper"
              },
              "skipSteadyStateCheck": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "workload": {
                "type": "string",
                "minLength": 1
              },
              "description": {
                "desc": "This is the description for K8sScaleStepInfo"
              }
            }
          },
          "InstanceSelectionWrapper": {
            "title": "InstanceSelectionWrapper",
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Count",
                  "Percentage"
                ]
              },
              "description": {
                "desc": "This is the description for InstanceSelectionWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Count"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/CountInstanceSelection"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Percentage"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/PercentageInstanceSelection"
                    }
                  }
                }
              }
            ]
          },
          "CountInstanceSelection": {
            "title": "CountInstanceSelection",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/InstanceSelectionBase"
              },
              {
                "type": "object",
                "properties": {
                  "count": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldString"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "integer"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CountInstanceSelection"
              }
            }
          },
          "InstanceSelectionBase": {
            "title": "InstanceSelectionBase",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for InstanceSelectionBase"
              }
            }
          },
          "PercentageInstanceSelection": {
            "title": "PercentageInstanceSelection",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/InstanceSelectionBase"
              },
              {
                "type": "object",
                "properties": {
                  "percentage": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldString"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for PercentageInstanceSelection"
              }
            }
          },
          "AsgCanaryDeleteStepNode": {
            "title": "AsgCanaryDeleteStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AsgCanaryDeleteStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AsgCanaryDelete"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgCanaryDelete"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgCanaryDeleteStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AsgCanaryDeleteStepInfo": {
            "title": "AsgCanaryDeleteStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AsgCanaryDeleteStepInfo"
              }
            }
          },
          "TerraformCloudRollbackStepNode": {
            "title": "TerraformCloudRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TerraformCloudRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "TerraformCloudRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TerraformCloudRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TerraformCloudRollbackStepInfo": {
            "title": "TerraformCloudRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "provisionerIdentifier"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "discardPendingRuns": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "overridePolicies": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "provisionerIdentifier": {
                    "type": "string"
                  },
                  "runMessage": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "provisionerIdentifier"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "discardPendingRuns": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "overridePolicies": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "provisionerIdentifier": {
                "type": "string"
              },
              "runMessage": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerraformCloudRollbackStepInfo"
              }
            }
          },
          "ServerlessAwsLambdaRollbackStepNode": {
            "title": "ServerlessAwsLambdaRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ServerlessAwsLambdaRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ServerlessAwsLambdaRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ServerlessAwsLambdaRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ServerlessAwsLambdaRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ServerlessAwsLambdaRollbackStepInfo": {
            "title": "ServerlessAwsLambdaRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for ServerlessAwsLambdaRollbackStepInfo"
              }
            }
          },
          "AzureWebAppTrafficShiftStepNode": {
            "title": "AzureWebAppTrafficShiftStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AzureWebAppTrafficShiftStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AzureTrafficShift"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureTrafficShift"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureWebAppTrafficShiftStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AzureWebAppTrafficShiftStepInfo": {
            "title": "AzureWebAppTrafficShiftStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "traffic"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "traffic": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldString"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "traffic"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "traffic": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldString"
                  },
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minLength": 1
              },
              "description": {
                "desc": "This is the description for AzureWebAppTrafficShiftStepInfo"
              }
            }
          },
          "AzureWebAppSwapSlotStepNode": {
            "title": "AzureWebAppSwapSlotStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AzureWebAppSwapSlotStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AzureSwapSlot"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureSwapSlot"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureWebAppSwapSlotStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AzureWebAppSwapSlotStepInfo": {
            "title": "AzureWebAppSwapSlotStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "targetSlot"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "targetSlot": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "targetSlot"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "targetSlot": {
                "type": "string",
                "minLength": 1
              },
              "description": {
                "desc": "This is the description for AzureWebAppSwapSlotStepInfo"
              }
            }
          },
          "TasRollbackStepNode": {
            "title": "TasRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TasRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AppRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AppRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TasRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TasRollbackStepInfo": {
            "title": "TasRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for TasRollbackStepInfo"
              }
            }
          },
          "K8sCanaryDeleteStepNode": {
            "title": "K8sCanaryDeleteStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for K8sCanaryDeleteStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "K8sCanaryDelete"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "K8sCanaryDelete"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sCanaryDeleteStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "K8sCanaryDeleteStepInfo": {
            "title": "K8sCanaryDeleteStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "description": {
                "desc": "This is the description for K8sCanaryDeleteStepInfo"
              }
            }
          },
          "TasAppResizeStepNode": {
            "title": "TasAppResizeStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TasAppResizeStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AppResize"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AppResize"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TasAppResizeStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TasAppResizeStepInfo": {
            "title": "TasAppResizeStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "newAppInstances"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ignoreInstanceCountManifest": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "newAppInstances": {
                    "$ref": "#/definitions/pipeline/steps/cd/TasInstanceSelectionWrapper"
                  },
                  "oldAppInstances": {
                    "$ref": "#/definitions/pipeline/steps/cd/TasInstanceSelectionWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "newAppInstances"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ignoreInstanceCountManifest": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "newAppInstances": {
                "$ref": "#/definitions/pipeline/steps/cd/TasInstanceSelectionWrapper"
              },
              "oldAppInstances": {
                "$ref": "#/definitions/pipeline/steps/cd/TasInstanceSelectionWrapper"
              },
              "description": {
                "desc": "This is the description for TasAppResizeStepInfo"
              }
            }
          },
          "TasInstanceSelectionWrapper": {
            "title": "TasInstanceSelectionWrapper",
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Percentage",
                  "Count"
                ]
              },
              "description": {
                "desc": "This is the description for TasInstanceSelectionWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Count"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TasCountInstanceSelection"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Percentage"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TasPercentageInstanceSelection"
                    }
                  }
                }
              }
            ]
          },
          "TasCountInstanceSelection": {
            "title": "TasCountInstanceSelection",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TasInstanceSelectionBase"
              },
              {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "value": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldString"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TasCountInstanceSelection"
              }
            }
          },
          "TasInstanceSelectionBase": {
            "title": "TasInstanceSelectionBase",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TasInstanceSelectionBase"
              }
            }
          },
          "TasPercentageInstanceSelection": {
            "title": "TasPercentageInstanceSelection",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TasInstanceSelectionBase"
              },
              {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "value": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldString"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TasPercentageInstanceSelection"
              }
            }
          },
          "TasBasicAppSetupStepNode": {
            "title": "TasBasicAppSetupStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TasBasicAppSetupStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "BasicAppSetup"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "BasicAppSetup"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TasBasicAppSetupStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TasBasicAppSetupStepInfo": {
            "title": "TasBasicAppSetupStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "existingVersionToKeep",
                  "tasInstanceCountType"
                ],
                "properties": {
                  "additionalRoutes": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "existingVersionToKeep": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 1
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "tasInstanceCountType": {
                    "type": "string",
                    "enum": [
                      "FromManifest",
                      "MatchRunningInstances"
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "existingVersionToKeep",
              "tasInstanceCountType"
            ],
            "properties": {
              "additionalRoutes": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "existingVersionToKeep": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "tasInstanceCountType": {
                "type": "string",
                "enum": [
                  "FromManifest",
                  "MatchRunningInstances"
                ]
              },
              "description": {
                "desc": "This is the description for TasBasicAppSetupStepInfo"
              }
            }
          },
          "GoogleFunctionsTrafficShiftStepNode": {
            "title": "GoogleFunctionsTrafficShiftStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GoogleFunctionsTrafficShiftStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CloudFunctionTrafficShift"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CloudFunctionTrafficShift"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleFunctionsTrafficShiftStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GoogleFunctionsTrafficShiftStepInfo": {
            "title": "GoogleFunctionsTrafficShiftStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "trafficPercent": {
                    "type": "integer",
                    "format": "int32"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "trafficPercent": {
                "type": "integer",
                "format": "int32"
              },
              "description": {
                "desc": "This is the description for GoogleFunctionsTrafficShiftStepInfo"
              }
            }
          },
          "ElastigroupBGStageSetupStepNode": {
            "title": "ElastigroupBGStageSetupStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ElastigroupBGStageSetupStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ElastigroupBGStageSetup"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ElastigroupBGStageSetup"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ElastigroupBGStageSetupStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ElastigroupBGStageSetupStepInfo": {
            "title": "ElastigroupBGStageSetupStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "connectedCloudProvider",
                  "instances",
                  "loadBalancers"
                ],
                "properties": {
                  "connectedCloudProvider": {
                    "$ref": "#/definitions/pipeline/steps/cd/CloudProvider"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "instances": {
                    "$ref": "#/definitions/pipeline/steps/cd/ElastigroupInstances"
                  },
                  "loadBalancers": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/LoadBalancer"
                    }
                  },
                  "name": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "connectedCloudProvider",
              "instances",
              "loadBalancers"
            ],
            "properties": {
              "connectedCloudProvider": {
                "$ref": "#/definitions/pipeline/steps/cd/CloudProvider"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "instances": {
                "$ref": "#/definitions/pipeline/steps/cd/ElastigroupInstances"
              },
              "loadBalancers": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/LoadBalancer"
                }
              },
              "name": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ElastigroupBGStageSetupStepInfo"
              }
            }
          },
          "CloudProvider": {
            "title": "CloudProvider",
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "AWS"
                ]
              },
              "description": {
                "desc": "This is the description for CloudProvider"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AWS"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AwsCloudProviderBasicConfig"
                    }
                  }
                }
              }
            ]
          },
          "AwsCloudProviderBasicConfig": {
            "title": "AwsCloudProviderBasicConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/CloudProviderSpec"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "region"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AwsCloudProviderBasicConfig"
              }
            }
          },
          "CloudProviderSpec": {
            "title": "CloudProviderSpec",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "AWS"
                ]
              },
              "description": {
                "desc": "This is the description for CloudProviderSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "LoadBalancer": {
            "title": "LoadBalancer",
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "AWSLoadBalancerConfig"
                ]
              },
              "description": {
                "desc": "This is the description for LoadBalancer"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AWSLoadBalancerConfig"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AwsLoadBalancerConfigYaml"
                    }
                  }
                }
              }
            ]
          },
          "AwsLoadBalancerConfigYaml": {
            "title": "AwsLoadBalancerConfigYaml",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/LoadBalancerSpec"
              },
              {
                "type": "object",
                "required": [
                  "loadBalancer",
                  "prodListenerPort",
                  "prodListenerRuleArn"
                ],
                "properties": {
                  "loadBalancer": {
                    "type": "string"
                  },
                  "prodListenerPort": {
                    "type": "string"
                  },
                  "prodListenerRuleArn": {
                    "type": "string"
                  },
                  "stageListenerPort": {
                    "type": "string"
                  },
                  "stageListenerRuleArn": {
                    "type": "string"
                  },
                  "stageTargetGroupArn": {
                    "type": "string"
                  },
                  "isTrafficShift": {
                    "type": "boolean"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AwsLoadBalancerConfigYaml"
              }
            }
          },
          "LoadBalancerSpec": {
            "title": "LoadBalancerSpec",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "AWSLoadBalancerConfig"
                ]
              },
              "description": {
                "desc": "This is the description for LoadBalancerSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "HelmRollbackStepNode": {
            "title": "HelmRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for HelmRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "HelmRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HelmRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "HelmRollbackStepInfo": {
            "title": "HelmRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "skipSteadyStateCheck": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "runChartTests": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandFlags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/HelmManifestCommandFlag"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "skipSteadyStateCheck": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "runChartTests": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "environmentVariables": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ParameterFieldMapStringString"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "commandFlags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmManifestCommandFlag"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for HelmRollbackStepInfo"
              }
            }
          },
          "K8sDeleteStepNode": {
            "title": "K8sDeleteStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for K8sDeleteStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "K8sDelete"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "K8sDelete"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sDeleteStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "K8sDeleteStepInfo": {
            "title": "K8sDeleteStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "deleteResources"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "deleteResources": {
                    "$ref": "#/definitions/pipeline/steps/cd/DeleteResourcesWrapper"
                  },
                  "commandFlags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/K8sDeleteStepCommandFlag"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "deleteResources"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "deleteResources": {
                "$ref": "#/definitions/pipeline/steps/cd/DeleteResourcesWrapper"
              },
              "commandFlags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sDeleteStepCommandFlag"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for K8sDeleteStepInfo"
              }
            }
          },
          "DeleteResourcesWrapper": {
            "title": "DeleteResourcesWrapper",
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "ResourceName",
                  "ReleaseName",
                  "ManifestPath"
                ]
              },
              "description": {
                "desc": "This is the description for DeleteResourcesWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ManifestPath"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/DeleteManifestPathSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ReleaseName"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/DeleteReleaseNameSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ResourceName"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/DeleteResourceNameSpec"
                    }
                  }
                }
              }
            ]
          },
          "DeleteManifestPathSpec": {
            "title": "DeleteManifestPathSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/DeleteResourcesBaseSpec"
              },
              {
                "type": "object",
                "properties": {
                  "allManifestPaths": {
                    "type": "boolean"
                  },
                  "manifestPaths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for DeleteManifestPathSpec"
              }
            }
          },
          "DeleteResourcesBaseSpec": {
            "title": "DeleteResourcesBaseSpec",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for DeleteResourcesBaseSpec"
              }
            }
          },
          "DeleteReleaseNameSpec": {
            "title": "DeleteReleaseNameSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/DeleteResourcesBaseSpec"
              },
              {
                "type": "object",
                "properties": {
                  "deleteNamespace": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for DeleteReleaseNameSpec"
              }
            }
          },
          "DeleteResourceNameSpec": {
            "title": "DeleteResourceNameSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/DeleteResourcesBaseSpec"
              },
              {
                "type": "object",
                "required": [
                  "resourceNames"
                ],
                "properties": {
                  "resourceNames": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ],
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for DeleteResourceNameSpec"
              }
            }
          },
          "K8sDeleteStepCommandFlag": {
            "title": "K8sDeleteStepCommandFlag",
            "type": "object",
            "required": [
              "commandType"
            ],
            "properties": {
              "commandType": {
                "type": "string",
                "enum": [
                  "Delete"
                ]
              },
              "flag": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for K8sDeleteStepCommandFlag"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "K8sCanaryStepNode": {
            "title": "K8sCanaryStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for K8sCanaryStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "K8sCanaryDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "K8sCanaryDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sCanaryStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "K8sCanaryStepInfo": {
            "title": "K8sCanaryStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "instanceSelection"
                ],
                "properties": {
                  "commandFlags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/K8sStepCommandFlag"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "instanceSelection": {
                    "$ref": "#/definitions/pipeline/steps/cd/InstanceSelectionWrapper"
                  },
                  "trafficRouting": {
                    "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingSpec"
                  },
                  "skipDryRun": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "instanceSelection"
            ],
            "properties": {
              "commandFlags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sStepCommandFlag"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "instanceSelection": {
                "$ref": "#/definitions/pipeline/steps/cd/InstanceSelectionWrapper"
              },
              "trafficRouting": {
                "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingSpec"
              },
              "skipDryRun": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for K8sCanaryStepInfo"
              }
            }
          },
          "EcsCanaryDeleteStepNode": {
            "title": "EcsCanaryDeleteStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for EcsCanaryDeleteStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "EcsCanaryDelete"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsCanaryDelete"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsCanaryDeleteStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "EcsCanaryDeleteStepInfo": {
            "title": "EcsCanaryDeleteStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for EcsCanaryDeleteStepInfo"
              }
            }
          },
          "AsgRollingRollbackStepNode": {
            "title": "AsgRollingRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AsgRollingRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AsgRollingRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgRollingRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgRollingRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AsgRollingRollbackStepInfo": {
            "title": "AsgRollingRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AsgRollingRollbackStepInfo"
              }
            }
          },
          "EcsRunTaskStepNode": {
            "title": "EcsRunTaskStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for EcsRunTaskStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "EcsRunTask"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsRunTask"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsRunTaskStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "EcsRunTaskStepInfo": {
            "title": "EcsRunTaskStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "runTaskRequestDefinition"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "runTaskRequestDefinition": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  },
                  "skipSteadyStateCheck": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "taskDefinition": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  },
                  "taskDefinitionArn": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "runTaskRequestDefinition"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "runTaskRequestDefinition": {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
              },
              "skipSteadyStateCheck": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "taskDefinition": {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
              },
              "taskDefinitionArn": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for EcsRunTaskStepInfo"
              }
            }
          },
          "AsgBlueGreenRollbackStepNode": {
            "title": "AsgBlueGreenRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AsgBlueGreenRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AsgBlueGreenRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgBlueGreenRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgBlueGreenRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AsgBlueGreenRollbackStepInfo": {
            "title": "AsgBlueGreenRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AsgBlueGreenRollbackStepInfo"
              }
            }
          },
          "AwsSamRollbackStepNode": {
            "title": "AwsSamRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AwsSamRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AwsSamRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsSamRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AwsSamRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AwsSamRollbackStepInfo": {
            "title": "AwsSamRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AwsSamRollbackStepInfo"
              }
            }
          },
          "AwsSamBuildStepNode": {
            "title": "AwsSamBuildStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AwsSamBuildStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AwsSamBuild"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsSamBuild"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AwsSamBuildStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AwsSamBuildStepInfo": {
            "title": "AwsSamBuildStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "buildCommandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "samBuildDockerRegistryConnectorRef": {
                    "type": "string"
                  },
                  "preExecution": {
                    "type": "string"
                  },
                  "samVersion": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "buildCommandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "samBuildDockerRegistryConnectorRef": {
                "type": "string"
              },
              "preExecution": {
                "type": "string"
              },
              "samVersion": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AwsSamBuildStepInfo"
              }
            }
          },
          "K8sBGSwapServicesStepNode": {
            "title": "K8sBGSwapServicesStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for K8sBGSwapServicesStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "K8sBGSwapServices"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "K8sBGSwapServices"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sBGSwapServicesStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "K8sBGSwapServicesStepInfo": {
            "title": "K8sBGSwapServicesStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for K8sBGSwapServicesStepInfo"
              }
            }
          },
          "AzureARMRollbackStepNode": {
            "title": "AzureARMRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AzureARMRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AzureARMRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureARMRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureARMRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AzureARMRollbackStepInfo": {
            "title": "AzureARMRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "provisionerIdentifier"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "provisionerIdentifier": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "provisionerIdentifier"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "provisionerIdentifier": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for AzureARMRollbackStepInfo"
              }
            }
          },
          "TerragruntRollbackStepNode": {
            "title": "TerragruntRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TerragruntRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "TerragruntRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TerragruntRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerragruntRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TerragruntRollbackStepInfo": {
            "title": "TerragruntRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "provisionerIdentifier"
                ],
                "properties": {
                  "commandFlags": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerragruntCliOptionFlag"
                    }
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "provisionerIdentifier": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "provisionerIdentifier"
            ],
            "properties": {
              "commandFlags": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/TerragruntCliOptionFlag"
                }
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "provisionerIdentifier": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerragruntRollbackStepInfo"
              }
            }
          },
          "AzureCreateBPStepNode": {
            "title": "AzureCreateBPStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AzureCreateBPStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AzureCreateBPResource"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureCreateBPResource"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureCreateBPStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AzureCreateBPStepInfo": {
            "title": "AzureCreateBPStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "configuration"
                ],
                "properties": {
                  "configuration": {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureCreateBPStepConfiguration"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "configuration"
            ],
            "properties": {
              "configuration": {
                "$ref": "#/definitions/pipeline/steps/cd/AzureCreateBPStepConfiguration"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "metadata": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for AzureCreateBPStepInfo"
              }
            }
          },
          "AzureCreateBPStepConfiguration": {
            "title": "AzureCreateBPStepConfiguration",
            "type": "object",
            "required": [
              "connectorRef",
              "scope",
              "template"
            ],
            "properties": {
              "assignmentName": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "scope": {
                "type": "string",
                "enum": [
                  "Subscription",
                  "ManagementGroup"
                ]
              },
              "template": {
                "$ref": "#/definitions/pipeline/steps/cd/AzureTemplateFile"
              },
              "description": {
                "desc": "This is the description for AzureCreateBPStepConfiguration"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "GoogleFunctionsDeployWithoutTrafficStepNode": {
            "title": "GoogleFunctionsDeployWithoutTrafficStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GoogleFunctionsDeployWithoutTrafficStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DeployCloudFunctionWithNoTraffic"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DeployCloudFunctionWithNoTraffic"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleFunctionsDeployWithoutTrafficStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GoogleFunctionsDeployWithoutTrafficStepInfo": {
            "title": "GoogleFunctionsDeployWithoutTrafficStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "updateFieldMask": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "updateFieldMask": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for GoogleFunctionsDeployWithoutTrafficStepInfo"
              }
            }
          },
          "AwsSamDeployStepNode": {
            "title": "AwsSamDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AwsSamDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AwsSamDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsSamDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AwsSamDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AwsSamDeployStepInfo": {
            "title": "AwsSamDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "stackName"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "deployCommandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  },
                  "samVersion": {
                    "type": "string"
                  },
                  "stackName": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "stackName"
            ],
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "deployCommandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "samVersion": {
                "type": "string"
              },
              "stackName": {
                "type": "string",
                "minLength": 1
              },
              "description": {
                "desc": "This is the description for AwsSamDeployStepInfo"
              }
            }
          },
          "TasCommandStepNode": {
            "title": "TasCommandStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TasCommandStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "TanzuCommand"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TanzuCommand"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TasCommandStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TasCommandStepInfo": {
            "title": "TasCommandStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "script"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "inputVariables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  },
                  "outputVariables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  },
                  "script": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/TasCommandScript"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "script"
            ],
            "properties": {
              "inputVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "outputVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "script": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TasCommandScript"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for TasCommandStepInfo"
              }
            }
          },
          "TasCommandScript": {
            "title": "TasCommandScript",
            "type": "object",
            "required": [
              "store"
            ],
            "properties": {
              "store": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for TasCommandScript"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "K8sApplyStepNode": {
            "title": "K8sApplyStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for K8sApplyStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "K8sApply"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "K8sApply"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sApplyStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "K8sApplyStepInfo": {
            "title": "K8sApplyStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "filePaths"
                    ]
                  },
                  {
                    "required": [
                      "manifestSource"
                    ]
                  }
                ]
              },
              {
                "type": "object",
                "properties": {
                  "commandFlags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/K8sStepCommandFlag"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "filePaths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "maxItems": 2147483647,
                        "minItems": 1
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "overrides": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/ManifestConfigWrapper"
                    }
                  },
                  "skipDryRun": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "skipRendering": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "skipSteadyStateCheck": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "commandFlags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sStepCommandFlag"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "filePaths": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "maxItems": 2147483647,
                    "minItems": 1
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "manifestSource": {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestSourceWrapper"
              },
              "overrides": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/ManifestConfigWrapper"
                }
              },
              "skipDryRun": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "skipRendering": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "skipSteadyStateCheck": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for K8sApplyStepInfo"
              }
            }
          },
          "ManifestConfigWrapper": {
            "title": "ManifestConfigWrapper",
            "type": "object",
            "properties": {
              "manifest": {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestConfig"
              },
              "description": {
                "desc": "This is the description for ManifestConfigWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ManifestConfig": {
            "title": "ManifestConfig",
            "type": "object",
            "required": [
              "identifier",
              "spec",
              "type"
            ],
            "properties": {
              "identifier": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "HelmChart",
                  "HelmRepoOverride",
                  "K8sManifest",
                  "Kustomize",
                  "KustomizePatches",
                  "OpenshiftParam",
                  "OpenshiftTemplate",
                  "Values",
                  "ServerlessAwsLambda",
                  "ReleaseRepo",
                  "DeploymentRepo",
                  "EcsTaskDefinition",
                  "EcsServiceDefinition",
                  "EcsScalableTargetDefinition",
                  "EcsScalingPolicyDefinition",
                  "TasManifest",
                  "TasVars",
                  "TasAutoScaler",
                  "AsgLaunchTemplate",
                  "AsgConfiguration",
                  "AsgAdditionalConfiguration",
                  "AsgScalingPolicy",
                  "AsgScheduledUpdateGroupAction",
                  "GoogleCloudFunctionDefinition",
                  "AwsLambdaFunctionDefinition",
                  "AwsLambdaFunctionAliasDefinition",
                  "AwsSamDirectory",
                  "GoogleCloudFunctionGenOneDefinition",
                  "GoogleMigInstanceTemplate",
                  "GoogleMigConfiguration",
                  "GoogleMigAutoscalerConfiguration",
                  "GoogleMigHealthCheckConfiguration"
                ]
              },
              "description": {
                "desc": "This is the description for ManifestConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgConfiguration"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgConfigurationManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgAdditionalConfiguration"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgAdditionalConfigurationManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgLaunchTemplate"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgLaunchTemplateManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgScalingPolicy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgScalingPolicyManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgScheduledUpdateGroupAction"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgScheduledUpdateGroupActionManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsLambdaFunctionAliasDefinition"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AwsLambdaFunctionAliasDefinitionManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsLambdaFunctionDefinition"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AwsLambdaDefinitionManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsSamDirectory"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AwsSamDirectoryManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DeploymentRepo"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GitOpsDeploymentRepoManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsScalableTargetDefinition"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsScalableTargetDefinitionManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsScalingPolicyDefinition"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsScalingPolicyDefinitionManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsServiceDefinition"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsServiceDefinitionManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsTaskDefinition"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsTaskDefinitionManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudFunctionDefinition"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudFunctionDefinitionManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudFunctionGenOneDefinition"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudFunctionGenOneDefinitionManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HelmChart"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmChartManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HelmRepoOverride"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmRepoOverrideManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "K8sManifest"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Kustomize"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/KustomizeManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "KustomizePatches"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/KustomizePatchesManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "OpenshiftParam"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/OpenshiftParamManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "OpenshiftTemplate"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/OpenshiftManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ReleaseRepo"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ReleaseRepoManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ServerlessAwsLambda"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ServerlessAwsLambdaManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TasAutoScaler"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AutoScalerManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TasManifest"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TasManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TasVars"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/VarsManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Values"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ValuesManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleMigInstanceTemplate"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleMigInstanceTemplate"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleMigConfiguration"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleMigConfiguration"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleMigAutoscalerConfiguration"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleMigAutoscalerConfiguration"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleMigHealthCheckConfiguration"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleMigHealthCheckConfiguration"
                    }
                  }
                }
              }
            ]
          },
          "AsgConfigurationManifest": {
            "title": "AsgConfigurationManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AsgConfigurationManifest"
              }
            }
          },
          "ManifestAttributes": {
            "title": "ManifestAttributes",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ManifestAttributes"
              }
            }
          },
          "AsgAdditionalConfigurationManifest": {
            "title": "AsgAdditionalConfigurationManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AsgAdditionalConfigurationManifest"
              }
            }
          },
          "AsgLaunchTemplateManifest": {
            "title": "AsgLaunchTemplateManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AsgLaunchTemplateManifest"
              }
            }
          },
          "AsgScalingPolicyManifest": {
            "title": "AsgScalingPolicyManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AsgScalingPolicyManifest"
              }
            }
          },
          "AsgScheduledUpdateGroupActionManifest": {
            "title": "AsgScheduledUpdateGroupActionManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AsgScheduledUpdateGroupActionManifest"
              }
            }
          },
          "AwsLambdaFunctionAliasDefinitionManifest": {
            "title": "AwsLambdaFunctionAliasDefinitionManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AwsLambdaFunctionAliasDefinitionManifest"
              }
            }
          },
          "AwsLambdaDefinitionManifest": {
            "title": "AwsLambdaDefinitionManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AwsLambdaDefinitionManifest"
              }
            }
          },
          "AwsSamDirectoryManifest": {
            "title": "AwsSamDirectoryManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "samTemplateFile": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AwsSamDirectoryManifest"
              }
            }
          },
          "GitOpsDeploymentRepoManifest": {
            "title": "GitOpsDeploymentRepoManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GitOpsDeploymentRepoManifest"
              }
            }
          },
          "EcsScalableTargetDefinitionManifest": {
            "title": "EcsScalableTargetDefinitionManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for EcsScalableTargetDefinitionManifest"
              }
            }
          },
          "EcsScalingPolicyDefinitionManifest": {
            "title": "EcsScalingPolicyDefinitionManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for EcsScalingPolicyDefinitionManifest"
              }
            }
          },
          "EcsServiceDefinitionManifest": {
            "title": "EcsServiceDefinitionManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for EcsServiceDefinitionManifest"
              }
            }
          },
          "EcsTaskDefinitionManifest": {
            "title": "EcsTaskDefinitionManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for EcsTaskDefinitionManifest"
              }
            }
          },
          "GoogleCloudFunctionDefinitionManifest": {
            "title": "GoogleCloudFunctionDefinitionManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GoogleCloudFunctionDefinitionManifest"
              }
            }
          },
          "GoogleCloudFunctionGenOneDefinitionManifest": {
            "title": "GoogleCloudFunctionGenOneDefinitionManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GoogleCloudFunctionGenOneDefinitionManifest"
              }
            }
          },
          "HelmChartManifest": {
            "title": "HelmChartManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "chartName": {
                    "type": "string"
                  },
                  "chartVersion": {
                    "type": "string"
                  },
                  "commandFlags": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmManifestCommandFlag"
                    }
                  },
                  "enableDeclarativeRollback": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "boolean"
                      }
                    ]
                  },
                  "helmVersion": {
                    "type": "string",
                    "enum": [
                      "V2",
                      "V3",
                      "V380"
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "skipResourceVersioning": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  },
                  "subChartPath": {
                    "type": "string"
                  },
                  "valuesPaths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "optionalValuesYaml": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      },
                      {
                        "type": "boolean"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for HelmChartManifest"
              }
            }
          },
          "HelmRepoOverrideManifest": {
            "title": "HelmRepoOverrideManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "type"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for HelmRepoOverrideManifest"
              }
            }
          },
          "K8sManifest": {
            "title": "K8sManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "enableDeclarativeRollback": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "boolean"
                      }
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "skipResourceVersioning": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "boolean"
                      }
                    ]
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  },
                  "valuesPaths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "optionalValuesYaml": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      },
                      {
                        "type": "boolean"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for K8sManifest"
              }
            }
          },
          "KustomizeManifest": {
            "title": "KustomizeManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "commandFlags": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/KustomizeManifestCommandFlag"
                    }
                  },
                  "enableDeclarativeRollback": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "boolean"
                      }
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "overlayConfiguration": {
                    "$ref": "#/definitions/pipeline/steps/cd/OverlayConfiguration"
                  },
                  "patchesPaths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "pluginPath": {
                    "type": "string"
                  },
                  "skipResourceVersioning": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "boolean"
                      }
                    ]
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for KustomizeManifest"
              }
            }
          },
          "KustomizeManifestCommandFlag": {
            "title": "KustomizeManifestCommandFlag",
            "type": "object",
            "required": [
              "commandType"
            ],
            "properties": {
              "commandType": {
                "type": "string",
                "enum": [
                  "Build"
                ]
              },
              "flag": {
                "type": "string",
                "minLength": 1
              },
              "description": {
                "desc": "This is the description for KustomizeManifestCommandFlag"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "OverlayConfiguration": {
            "title": "OverlayConfiguration",
            "type": "object",
            "required": [
              "kustomizeYamlFolderPath"
            ],
            "properties": {
              "kustomizeYamlFolderPath": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for OverlayConfiguration"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "KustomizePatchesManifest": {
            "title": "KustomizePatchesManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for KustomizePatchesManifest"
              }
            }
          },
          "OpenshiftParamManifest": {
            "title": "OpenshiftParamManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for OpenshiftParamManifest"
              }
            }
          },
          "OpenshiftManifest": {
            "title": "OpenshiftManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "enableDeclarativeRollback": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "boolean"
                      }
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "paramsPaths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "skipResourceVersioning": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "boolean"
                      }
                    ]
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for OpenshiftManifest"
              }
            }
          },
          "ReleaseRepoManifest": {
            "title": "ReleaseRepoManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ReleaseRepoManifest"
              }
            }
          },
          "ServerlessAwsLambdaManifest": {
            "title": "ServerlessAwsLambdaManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "configOverridePath": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ServerlessAwsLambdaManifest"
              }
            }
          },
          "AutoScalerManifest": {
            "title": "AutoScalerManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "skipResourceVersioning": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "boolean"
                      }
                    ]
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AutoScalerManifest"
              }
            }
          },
          "TasManifest": {
            "title": "TasManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "autoScalerPath": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "cfCliVersion": {
                    "type": "string",
                    "enum": [
                      "V7"
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  },
                  "varsPaths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TasManifest"
              }
            }
          },
          "VarsManifest": {
            "title": "VarsManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for VarsManifest"
              }
            }
          },
          "ValuesManifest": {
            "title": "ValuesManifest",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  },
                  "optionalValuesYaml": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      },
                      {
                        "type": "boolean"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ValuesManifest"
              }
            }
          },
          "GoogleMigInstanceTemplate": {
            "title": "GoogleMigInstanceTemplate",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GoogleMigInstanceTemplate"
              }
            }
          },
          "GoogleMigConfiguration": {
            "title": "GoogleMigConfiguration",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GoogleMigConfiguration"
              }
            }
          },
          "GoogleMigAutoscalerConfiguration": {
            "title": "GoogleMigAutoscalerConfiguration",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GoogleMigAutoscalerConfiguration"
              }
            }
          },
          "GoogleMigHealthCheckConfiguration": {
            "title": "GoogleMigHealthCheckConfiguration",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ManifestAttributes"
              },
              {
                "type": "object",
                "properties": {
                  "metadata": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GoogleMigHealthCheckConfiguration"
              }
            }
          },
          "ManifestSourceWrapper": {
            "title": "ManifestSourceWrapper",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "K8sManifest"
                ]
              },
              "description": {
                "desc": "This is the description for ManifestSourceWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgConfiguration"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgConfigurationManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgAdditionalConfiguration"
                    }
                  },
                  "then": {
                    "properties": {
                      "spec": {
                        "$ref": "#/definitions/pipeline/steps/cd/AsgAdditionalConfigurationManifest"
                      }
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgLaunchTemplate"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgLaunchTemplateManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgScalingPolicy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgScalingPolicyManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgScheduledUpdateGroupAction"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgScheduledUpdateGroupActionManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsLambdaFunctionAliasDefinition"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AwsLambdaFunctionAliasDefinitionManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsLambdaFunctionDefinition"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AwsLambdaDefinitionManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsSamDirectory"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AwsSamDirectoryManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DeploymentRepo"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GitOpsDeploymentRepoManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsScalableTargetDefinition"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsScalableTargetDefinitionManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsScalingPolicyDefinition"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsScalingPolicyDefinitionManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsServiceDefinition"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsServiceDefinitionManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsTaskDefinition"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsTaskDefinitionManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudFunctionDefinition"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudFunctionDefinitionManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudFunctionGenOneDefinition"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudFunctionGenOneDefinitionManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HelmChart"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmChartManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HelmRepoOverride"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmRepoOverrideManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "K8sManifest"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Kustomize"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/KustomizeManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "KustomizePatches"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/KustomizePatchesManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "OpenshiftParam"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/OpenshiftParamManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "OpenshiftTemplate"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/OpenshiftManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ReleaseRepo"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ReleaseRepoManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ServerlessAwsLambda"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ServerlessAwsLambdaManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TasAutoScaler"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AutoScalerManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TasManifest"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TasManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TasVars"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/VarsManifest"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Values"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ValuesManifest"
                    }
                  }
                }
              }
            ]
          },
          "TasRollingDeployStepNode": {
            "title": "TasRollingDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TasRollingDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "TasRollingDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TasRollingDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TasRollingDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TasRollingDeployStepInfo": {
            "title": "TasRollingDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "additionalRoutes": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "additionalRoutes": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for TasRollingDeployStepInfo"
              }
            }
          },
          "AwsLambdaDeployStepNode": {
            "title": "AwsLambdaDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AwsLambdaDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AwsLambdaDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsLambdaDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AwsLambdaDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AwsLambdaDeployStepInfo": {
            "title": "AwsLambdaDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AwsLambdaDeployStepInfo"
              }
            }
          },
          "AwsLambdaCanaryDeployStepNode": {
            "title": "AwsLambdaCanaryDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AwsLambdaCanaryDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AwsLambdaCanaryDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsLambdaCanaryDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AwsLambdaCanaryDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AwsLambdaCanaryDeployStepInfo": {
            "title": "AwsLambdaCanaryDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AwsLambdaCanaryDeployStepInfo"
              }
            }
          },
          "AwsLambdaCanaryRollbackStepNode": {
            "title": "AwsLambdaCanaryRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AwsLambdaCanaryRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AwsLambdaCanaryRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsLambdaCanaryRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AwsLambdaCanaryRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AwsLambdaCanaryRollbackStepInfo": {
            "title": "AwsLambdaCanaryRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AwsLambdaCanaryRollbackStepInfo"
              }
            }
          },
          "AwsLambdaTrafficShiftStepNode": {
            "title": "AwsLambdaTrafficShiftStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AwsLambdaTrafficShiftStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AwsLambdaTrafficShift"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsLambdaTrafficShift"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AwsLambdaTrafficShiftStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AwsLambdaTrafficShiftStepInfo": {
            "title": "AwsLambdaTrafficShiftStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "trafficPercentage": {
                    "type": "number",
                    "exclusiveMinimum": 0,
                    "maximum": 100
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "trafficPercentage": {
                "type": "number",
                "exclusiveMinimum": 0,
                "maximum": 100
              },
              "description": {
                "desc": "This is the description for AwsLambdaTrafficShiftStepInfo"
              }
            }
          },
          "CloudformationRollbackStepNode": {
            "title": "CloudformationRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for CloudformationRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "RollbackStack"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "RollbackStack"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/CloudformationRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "CloudformationRollbackStepInfo": {
            "title": "CloudformationRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "configuration"
                ],
                "properties": {
                  "configuration": {
                    "$ref": "#/definitions/pipeline/steps/cd/CloudformationRollbackStepConfiguration"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "configuration"
            ],
            "properties": {
              "configuration": {
                "$ref": "#/definitions/pipeline/steps/cd/CloudformationRollbackStepConfiguration"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "metadata": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for CloudformationRollbackStepInfo"
              }
            }
          },
          "CloudformationRollbackStepConfiguration": {
            "title": "CloudformationRollbackStepConfiguration",
            "type": "object",
            "required": [
              "provisionerIdentifier"
            ],
            "properties": {
              "provisionerIdentifier": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for CloudformationRollbackStepConfiguration"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ServerlessAwsLambdaDeployStepNode": {
            "title": "ServerlessAwsLambdaDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ServerlessAwsLambdaDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ServerlessAwsLambdaDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ServerlessAwsLambdaDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ServerlessAwsLambdaDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ServerlessAwsLambdaDeployStepInfo": {
            "title": "ServerlessAwsLambdaDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "commandOptions": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "commandOptions": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for ServerlessAwsLambdaDeployStepInfo"
              }
            }
          },
          "K8sRollingRollbackStepNode": {
            "title": "K8sRollingRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for K8sRollingRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "K8sRollingRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "K8sRollingRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sRollingRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "K8sRollingRollbackStepInfo": {
            "title": "K8sRollingRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "commandFlags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/K8sStepCommandFlag"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "pruningEnabled": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "commandFlags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sStepCommandFlag"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "pruningEnabled": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for K8sRollingRollbackStepInfo"
              }
            }
          },
          "K8sRollingStepNode": {
            "title": "K8sRollingStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for K8sRollingStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "K8sRollingDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "K8sRollingDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sRollingStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "K8sRollingStepInfo": {
            "title": "K8sRollingStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "commandFlags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/K8sStepCommandFlag"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "pruningEnabled": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "skipDryRun": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "commandFlags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sStepCommandFlag"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "pruningEnabled": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "skipDryRun": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for K8sRollingStepInfo"
              }
            }
          },
          "AsgBlueGreenSwapServiceStepNode": {
            "title": "AsgBlueGreenSwapServiceStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AsgBlueGreenSwapServiceStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AsgBlueGreenSwapService"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgBlueGreenSwapService"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgBlueGreenSwapServiceStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AsgBlueGreenSwapServiceStepInfo": {
            "title": "AsgBlueGreenSwapServiceStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "downsizeOldAsg"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "downsizeOldAsg": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "downsizeOldAsg"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "downsizeOldAsg": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AsgBlueGreenSwapServiceStepInfo"
              }
            }
          },
          "GoogleFunctionsGenOneDeployStepNode": {
            "title": "GoogleFunctionsGenOneDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GoogleFunctionsGenOneDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DeployCloudFunctionGenOne"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DeployCloudFunctionGenOne"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleFunctionsGenOneDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GoogleFunctionsGenOneDeployStepInfo": {
            "title": "GoogleFunctionsGenOneDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "updateFieldMask": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "updateFieldMask": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for GoogleFunctionsGenOneDeployStepInfo"
              }
            }
          },
          "CommandStepNode": {
            "title": "CommandStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for CommandStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Command"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Command"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/CommandStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "CommandStepInfo": {
            "title": "CommandStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "onDelegate"
                ],
                "properties": {
                  "commandUnits": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/CommandUnitWrapper"
                    }
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "environmentVariables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  },
                  "host": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "onDelegate": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "outputVariables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "onDelegate"
            ],
            "properties": {
              "commandUnits": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/CommandUnitWrapper"
                }
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "environmentVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "host": {
                "type": "string"
              },
              "metadata": {
                "type": "string"
              },
              "onDelegate": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "outputVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "description": {
                "desc": "This is the description for CommandStepInfo"
              }
            }
          },
          "CommandUnitWrapper": {
            "title": "CommandUnitWrapper",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "identifier": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for CommandUnitWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Copy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/CopyCommandUnitSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DownloadArtifact"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/DownloadArtifactCommandUnitSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Script"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ScriptCommandUnitSpec"
                    }
                  }
                }
              }
            ]
          },
          "CopyCommandUnitSpec": {
            "title": "CopyCommandUnitSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/CommandUnitBaseSpec"
              },
              {
                "type": "object",
                "required": [
                  "destinationPath",
                  "sourceType"
                ],
                "properties": {
                  "destinationPath": {
                    "type": "string"
                  },
                  "sourceType": {
                    "type": "string",
                    "enum": [
                      "Artifact",
                      "Config"
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CopyCommandUnitSpec"
              }
            }
          },
          "CommandUnitBaseSpec": {
            "title": "CommandUnitBaseSpec",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for CommandUnitBaseSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "DownloadArtifactCommandUnitSpec": {
            "title": "DownloadArtifactCommandUnitSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/CommandUnitBaseSpec"
              },
              {
                "type": "object",
                "required": [
                  "destinationPath"
                ],
                "properties": {
                  "destinationPath": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for DownloadArtifactCommandUnitSpec"
              }
            }
          },
          "ScriptCommandUnitSpec": {
            "title": "ScriptCommandUnitSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/CommandUnitBaseSpec"
              },
              {
                "type": "object",
                "required": [
                  "shell",
                  "source"
                ],
                "properties": {
                  "shell": {
                    "type": "string",
                    "enum": [
                      "Bash",
                      "PowerShell"
                    ]
                  },
                  "source": {
                    "$ref": "#/definitions/pipeline/common/ShellScriptSourceWrapper"
                  },
                  "tailFiles": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/TailFilePattern"
                    }
                  },
                  "workingDirectory": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ScriptCommandUnitSpec"
              }
            }
          },
          "TailFilePattern": {
            "title": "TailFilePattern",
            "type": "object",
            "properties": {
              "tailFile": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldString"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "tailPattern": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldString"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for TailFilePattern"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CloudformationCreateStackStepNode": {
            "title": "CloudformationCreateStackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for CloudformationCreateStackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CreateStack"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CreateStack"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/CloudformationCreateStackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "CloudformationCreateStackStepInfo": {
            "title": "CloudformationCreateStackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "configuration",
                  "provisionerIdentifier"
                ],
                "properties": {
                  "configuration": {
                    "$ref": "#/definitions/pipeline/steps/cd/CloudformationCreateStackStepConfiguration"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "provisionerIdentifier": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "configuration",
              "provisionerIdentifier"
            ],
            "properties": {
              "configuration": {
                "$ref": "#/definitions/pipeline/steps/cd/CloudformationCreateStackStepConfiguration"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "metadata": {
                "type": "string"
              },
              "provisionerIdentifier": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for CloudformationCreateStackStepInfo"
              }
            }
          },
          "CloudformationCreateStackStepConfiguration": {
            "title": "CloudformationCreateStackStepConfiguration",
            "type": "object",
            "required": [
              "connectorRef",
              "region",
              "stackName",
              "templateFile"
            ],
            "properties": {
              "capabilities": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "parameterOverrides": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "parameters": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/CloudformationParametersFileSpec"
                }
              },
              "region": {
                "type": "string"
              },
              "roleArn": {
                "type": "string"
              },
              "skipOnStackStatuses": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "stackName": {
                "type": "string"
              },
              "tags": {
                "$ref": "#/definitions/pipeline/steps/cd/CloudformationTags"
              },
              "templateFile": {
                "$ref": "#/definitions/pipeline/steps/cd/CloudformationTemplateFile"
              },
              "description": {
                "desc": "This is the description for CloudformationCreateStackStepConfiguration"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CloudformationParametersFileSpec": {
            "title": "CloudformationParametersFileSpec",
            "type": "object",
            "required": [
              "identifier",
              "store"
            ],
            "properties": {
              "identifier": {
                "type": "string"
              },
              "store": {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
              },
              "description": {
                "desc": "This is the description for CloudformationParametersFileSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CloudformationTags": {
            "title": "CloudformationTags",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for CloudformationTags"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Inline"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/InlineCloudformationTagsFileSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Remote"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/RemoteCloudformationTagsFileSpec"
                    }
                  }
                }
              }
            ]
          },
          "InlineCloudformationTagsFileSpec": {
            "title": "InlineCloudformationTagsFileSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/CloudformationTagsFileSpec"
              },
              {
                "type": "object",
                "required": [
                  "content"
                ],
                "properties": {
                  "content": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for InlineCloudformationTagsFileSpec"
              }
            }
          },
          "CloudformationTagsFileSpec": {
            "title": "CloudformationTagsFileSpec",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for CloudformationTagsFileSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "RemoteCloudformationTagsFileSpec": {
            "title": "RemoteCloudformationTagsFileSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/CloudformationTagsFileSpec"
              },
              {
                "type": "object",
                "required": [
                  "store"
                ],
                "properties": {
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for RemoteCloudformationTagsFileSpec"
              }
            }
          },
          "CloudformationTemplateFile": {
            "title": "CloudformationTemplateFile",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for CloudformationTemplateFile"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Inline"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/InlineCloudformationTemplateFileSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Remote"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/RemoteCloudformationTemplateFileSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "S3URL"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/S3UrlCloudformationTemplateFileSpec"
                    }
                  }
                }
              }
            ]
          },
          "InlineCloudformationTemplateFileSpec": {
            "title": "InlineCloudformationTemplateFileSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/CloudformationTemplateFileSpec"
              },
              {
                "type": "object",
                "required": [
                  "templateBody"
                ],
                "properties": {
                  "templateBody": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for InlineCloudformationTemplateFileSpec"
              }
            }
          },
          "CloudformationTemplateFileSpec": {
            "title": "CloudformationTemplateFileSpec",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for CloudformationTemplateFileSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "RemoteCloudformationTemplateFileSpec": {
            "title": "RemoteCloudformationTemplateFileSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/CloudformationTemplateFileSpec"
              },
              {
                "type": "object",
                "required": [
                  "store"
                ],
                "properties": {
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for RemoteCloudformationTemplateFileSpec"
              }
            }
          },
          "S3UrlCloudformationTemplateFileSpec": {
            "title": "S3UrlCloudformationTemplateFileSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/CloudformationTemplateFileSpec"
              },
              {
                "type": "object",
                "required": [
                  "templateUrl"
                ],
                "properties": {
                  "templateUrl": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for S3UrlCloudformationTemplateFileSpec"
              }
            }
          },
          "TerragruntPlanStepNode": {
            "title": "TerragruntPlanStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TerragruntPlanStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "TerragruntPlan"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TerragruntPlan"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerragruntPlanStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TerragruntPlanStepInfo": {
            "title": "TerragruntPlanStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "configuration",
                  "provisionerIdentifier"
                ],
                "properties": {
                  "configuration": {
                    "$ref": "#/definitions/pipeline/steps/cd/TerragruntPlanExecutionData"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "provisionerIdentifier": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "configuration",
              "provisionerIdentifier"
            ],
            "properties": {
              "configuration": {
                "$ref": "#/definitions/pipeline/steps/cd/TerragruntPlanExecutionData"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "provisionerIdentifier": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerragruntPlanStepInfo"
              }
            }
          },
          "TerragruntPlanExecutionData": {
            "title": "TerragruntPlanExecutionData",
            "type": "object",
            "required": [
              "command",
              "configFiles",
              "moduleConfig",
              "secretManagerRef"
            ],
            "properties": {
              "backendConfig": {
                "$ref": "#/definitions/pipeline/steps/cd/TerragruntBackendConfig"
              },
              "command": {
                "type": "string",
                "enum": [
                  "Apply",
                  "Destroy"
                ]
              },
              "commandFlags": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/TerragruntCliOptionFlag"
                }
              },
              "configFiles": {
                "$ref": "#/definitions/pipeline/steps/cd/TerragruntConfigFilesWrapper"
              },
              "environmentVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "exportTerragruntPlanJson": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "moduleConfig": {
                "$ref": "#/definitions/pipeline/steps/cd/TerragruntModuleConfig"
              },
              "secretManagerRef": {
                "type": "string"
              },
              "targets": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "varFiles": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/TerragruntVarFileWrapper"
                }
              },
              "workspace": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerragruntPlanExecutionData"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TerraformCloudRunStepNode": {
            "title": "TerraformCloudRunStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TerraformCloudRunStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "TerraformCloudRun"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TerraformCloudRun"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudRunStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TerraformCloudRunStepInfo": {
            "title": "TerraformCloudRunStepInfo",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "runType": {
                      "const": "Apply"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudApplySpec"
                    }
                  }
                },
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "runType",
                  "spec"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "runMessage": {
                    "type": "string"
                  },
                  "runType": {
                    "type": "string",
                    "enum": [
                      "RefreshState",
                      "PlanOnly",
                      "PlanAndApply",
                      "PlanAndDestroy",
                      "Plan",
                      "Apply"
                    ]
                  }
                },
                "if": {
                  "properties": {
                    "runType": {
                      "const": "Plan"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudPlanSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "runType": {
                      "const": "PlanAndApply"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudPlanAndApplySpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "runType": {
                      "const": "PlanAndDestroy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudPlanAndDestroySpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "runType": {
                      "const": "PlanOnly"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudPlanOnlySpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "runType": {
                      "const": "RefreshState"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudRefreshSpec"
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "runType",
              "spec"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "runMessage": {
                "type": "string"
              },
              "runType": {
                "type": "string",
                "enum": [
                  "RefreshState",
                  "PlanOnly",
                  "PlanAndApply",
                  "PlanAndDestroy",
                  "Plan",
                  "Apply"
                ]
              },
              "description": {
                "desc": "This is the description for TerraformCloudRunStepInfo"
              }
            }
          },
          "TerraformCloudApplySpec": {
            "title": "TerraformCloudApplySpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudRunExecutionSpec"
              },
              {
                "type": "object",
                "required": [
                  "provisionerIdentifier"
                ],
                "properties": {
                  "provisionerIdentifier": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TerraformCloudApplySpec"
              }
            }
          },
          "TerraformCloudRunExecutionSpec": {
            "title": "TerraformCloudRunExecutionSpec",
            "type": "object",
            "discriminator": "runType",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TerraformCloudRunExecutionSpec"
              }
            }
          },
          "TerraformCloudPlanSpec": {
            "title": "TerraformCloudPlanSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudRunExecutionSpec"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "discardPendingRuns",
                  "organization",
                  "provisionerIdentifier",
                  "workspace"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "discardPendingRuns": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "exportTerraformPlanJson": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "organization": {
                    "type": "string"
                  },
                  "project": {
                    "type": "string"
                  },
                  "planType": {
                    "type": "string",
                    "enum": [
                      "Apply",
                      "Destroy",
                      "Refresh"
                    ]
                  },
                  "provisionerIdentifier": {
                    "type": "string"
                  },
                  "targets": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "variables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  },
                  "workspace": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TerraformCloudPlanSpec"
              }
            }
          },
          "TerraformCloudPlanAndApplySpec": {
            "title": "TerraformCloudPlanAndApplySpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudRunExecutionSpec"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "organization",
                  "provisionerIdentifier",
                  "workspace"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "discardPendingRuns": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "organization": {
                    "type": "string"
                  },
                  "project": {
                    "type": "string"
                  },
                  "overridePolicies": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "provisionerIdentifier": {
                    "type": "string"
                  },
                  "targets": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "variables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  },
                  "workspace": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TerraformCloudPlanAndApplySpec"
              }
            }
          },
          "TerraformCloudPlanAndDestroySpec": {
            "title": "TerraformCloudPlanAndDestroySpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudRunExecutionSpec"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "organization",
                  "provisionerIdentifier",
                  "workspace"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "discardPendingRuns": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "organization": {
                    "type": "string"
                  },
                  "project": {
                    "type": "string"
                  },
                  "overridePolicies": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "provisionerIdentifier": {
                    "type": "string"
                  },
                  "targets": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "variables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  },
                  "workspace": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TerraformCloudPlanAndDestroySpec"
              }
            }
          },
          "TerraformCloudPlanOnlySpec": {
            "title": "TerraformCloudPlanOnlySpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudRunExecutionSpec"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "discardPendingRuns",
                  "organization",
                  "provisionerIdentifier",
                  "workspace"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "discardPendingRuns": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "exportTerraformPlanJson": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "organization": {
                    "type": "string"
                  },
                  "project": {
                    "type": "string"
                  },
                  "planType": {
                    "type": "string",
                    "enum": [
                      "Apply",
                      "Destroy"
                    ]
                  },
                  "provisionerIdentifier": {
                    "type": "string"
                  },
                  "targets": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "terraformVersion": {
                    "type": "string"
                  },
                  "variables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  },
                  "workspace": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TerraformCloudPlanOnlySpec"
              }
            }
          },
          "TerraformCloudRefreshSpec": {
            "title": "TerraformCloudRefreshSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudRunExecutionSpec"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "organization",
                  "workspace"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "discardPendingRuns": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "organization": {
                    "type": "string"
                  },
                  "project": {
                    "type": "string"
                  },
                  "variables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  },
                  "workspace": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TerraformCloudRefreshSpec"
              }
            }
          },
          "AzureWebAppSlotDeploymentStepNode": {
            "title": "AzureWebAppSlotDeploymentStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AzureWebAppSlotDeploymentStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AzureSlotDeployment"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureSlotDeployment"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureWebAppSlotDeploymentStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AzureWebAppSlotDeploymentStepInfo": {
            "title": "AzureWebAppSlotDeploymentStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "deploymentSlot",
                  "webApp"
                ],
                "properties": {
                  "clean": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "skipSteadyStateCheck": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "deploymentSlot": {
                    "type": "string",
                    "minLength": 1
                  },
                  "webApp": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "deploymentSlot",
              "webApp"
            ],
            "properties": {
              "clean": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "skipSteadyStateCheck": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "deploymentSlot": {
                "type": "string",
                "minLength": 1
              },
              "webApp": {
                "type": "string",
                "minLength": 1
              },
              "description": {
                "desc": "This is the description for AzureWebAppSlotDeploymentStepInfo"
              }
            }
          },
          "EcsBlueGreenRollbackStepNode": {
            "title": "EcsBlueGreenRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for EcsBlueGreenRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "EcsBlueGreenRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsBlueGreenRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsBlueGreenRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "EcsBlueGreenRollbackStepInfo": {
            "title": "EcsBlueGreenRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for EcsBlueGreenRollbackStepInfo"
              }
            }
          },
          "ElastigroupRollbackStepNode": {
            "title": "ElastigroupRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ElastigroupRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ElastigroupRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ElastigroupRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ElastigroupRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ElastigroupRollbackStepInfo": {
            "title": "ElastigroupRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "metadata": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ElastigroupRollbackStepInfo"
              }
            }
          },
          "TerraformApplyStepNode": {
            "title": "TerraformApplyStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TerraformApplyStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "TerraformApply"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TerraformApply"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerraformApplyStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TerraformApplyStepInfo": {
            "title": "TerraformApplyStepInfo",
            "allOf": [
              {
                "oneOf": [
                  {
                    "required": [
                      "configuration"
                    ]
                  },
                  {
                    "required": [
                      "cloudCliConfiguration"
                    ]
                  }
                ],
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "provisionerIdentifier"
                ],
                "properties": {
                  "cloudCliConfiguration": {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudCliStepConfiguration"
                  },
                  "configuration": {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformStepConfiguration"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "provisionerIdentifier": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "configuration"
                    ]
                  },
                  {
                    "required": [
                      "cloudCliConfiguration"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "provisionerIdentifier"
            ],
            "properties": {
              "cloudCliConfiguration": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudCliStepConfiguration"
              },
              "configuration": {
                "$ref": "#/definitions/pipeline/steps/cd/TerraformStepConfiguration"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "metadata": {
                "type": "string"
              },
              "provisionerIdentifier": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerraformApplyStepInfo"
              }
            }
          },
          "TasSwapRoutesStepNode": {
            "title": "TasSwapRoutesStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TasSwapRoutesStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SwapRoutes"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SwapRoutes"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TasSwapRoutesStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TasSwapRoutesStepInfo": {
            "title": "TasSwapRoutesStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "downSizeOldApplication"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "downSizeOldApplication": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "downSizeOldApplication"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "downSizeOldApplication": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for TasSwapRoutesStepInfo"
              }
            }
          },
          "AwsLambdaRollbackStepNode": {
            "title": "AwsLambdaRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AwsLambdaRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AwsLambdaRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsLambdaRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AwsLambdaRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AwsLambdaRollbackStepInfo": {
            "title": "AwsLambdaRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AwsLambdaRollbackStepInfo"
              }
            }
          },
          "EcsRollingDeployStepNode": {
            "title": "EcsRollingDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for EcsRollingDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "EcsRollingDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsRollingDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsRollingDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "EcsRollingDeployStepInfo": {
            "title": "EcsRollingDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "forceNewDeployment": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "sameAsAlreadyRunningInstances": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "skipApplicationScaling": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "forceNewDeployment": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "sameAsAlreadyRunningInstances": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "skipApplicationScaling": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for EcsRollingDeployStepInfo"
              }
            }
          },
          "EcsScaleStepNode": {
            "title": "EcsScaleStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for EcsScaleStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "EcsScale"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsScale"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsScaleStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "EcsScaleStepInfo": {
            "title": "EcsScaleStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "service",
                  "instanceUnit",
                  "instances"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  },
                  "cluster": {
                    "type": "string"
                  },
                  "service": {
                    "type": "string"
                  },
                  "instanceUnit": {
                    "type": "string"
                  },
                  "instances": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "skipSteadyStateCheck": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "service",
              "instanceUnit",
              "instances"
            ],
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "region": {
                "type": "string"
              },
              "cluster": {
                "type": "string"
              },
              "service": {
                "type": "string"
              },
              "instanceUnit": {
                "type": "string"
              },
              "instances": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "skipSteadyStateCheck": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for EcsScaleStepInfo"
              }
            }
          },
          "AsgScaleStepNode": {
            "title": "AsgScaleStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AsgScaleStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AsgScale"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgScale"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgScaleStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AsgScaleStepInfo": {
            "title": "AsgScaleStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "instanceSelection"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  },
                  "asgName": {
                    "type": "string"
                  },
                  "instanceSelection": {
                    "$ref": "#/definitions/pipeline/steps/cd/Capacity"
                  },
                  "skipSteadyStateCheck": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "instanceSelection"
            ],
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "region": {
                "type": "string"
              },
              "asgName": {
                "type": "string"
              },
              "instanceSelection": {
                "$ref": "#/definitions/pipeline/steps/cd/Capacity"
              },
              "skipSteadyStateCheck": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AsgScaleStepInfo"
              }
            }
          },
          "AsgBlueGreenDeployStepNode": {
            "title": "AsgBlueGreenDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AsgBlueGreenDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AsgBlueGreenDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgBlueGreenDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgBlueGreenDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AsgBlueGreenDeployStepInfo": {
            "title": "AsgBlueGreenDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "asgName": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "instances": {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgInstances"
                  },
                  "loadBalancer": {
                    "type": "string"
                  },
                  "loadBalancers": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/AwsAsgLoadBalancerConfigYaml"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "prodListener": {
                    "type": "string"
                  },
                  "prodListenerRuleArn": {
                    "type": "string"
                  },
                  "stageListener": {
                    "type": "string"
                  },
                  "stageListenerRuleArn": {
                    "type": "string"
                  },
                  "useAlreadyRunningInstances": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "asgName": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "instances": {
                "$ref": "#/definitions/pipeline/steps/cd/AsgInstances"
              },
              "loadBalancer": {
                "type": "string"
              },
              "loadBalancers": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/AwsAsgLoadBalancerConfigYaml"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "prodListener": {
                "type": "string"
              },
              "prodListenerRuleArn": {
                "type": "string"
              },
              "stageListener": {
                "type": "string"
              },
              "stageListenerRuleArn": {
                "type": "string"
              },
              "useAlreadyRunningInstances": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AsgBlueGreenDeployStepInfo"
              }
            }
          },
          "AwsAsgLoadBalancerConfigYaml": {
            "title": "AwsAsgLoadBalancerConfigYaml",
            "type": "object",
            "required": [
              "loadBalancer",
              "prodListener",
              "prodListenerRuleArn"
            ],
            "properties": {
              "loadBalancer": {
                "type": "string"
              },
              "prodListener": {
                "type": "string"
              },
              "prodListenerRuleArn": {
                "type": "string"
              },
              "stageListener": {
                "type": "string"
              },
              "stageListenerRuleArn": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for AwsAsgLoadBalancerConfigYaml"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "AsgShiftTrafficStepNode": {
            "title": "AsgShiftTrafficStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AsgShiftTrafficStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AsgShiftTraffic"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgShiftTraffic"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgShiftTrafficStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AsgShiftTrafficStepInfo": {
            "title": "AsgShiftTrafficStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "weight",
                  "downsizeOldAsg"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "weight": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "downsizeOldAsg": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "downsizeOldAsg"
            ],
            "properties": {
              "description": {
                "desc": "This is the description for AsgShiftTrafficStepInfo"
              }
            }
          },
          "AsgPhasedDeployStepNode": {
            "title": "AsgPhasedDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AsgPhasedDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AsgPhasedDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgPhasedDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgPhasedDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AsgPhasedDeployStepInfo": {
            "title": "AsgPhasedDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "instanceSelection"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "instanceSelection": {
                    "$ref": "#/definitions/pipeline/steps/cd/Capacity"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "instanceSelection"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "instanceSelection": {
                "$ref": "#/definitions/pipeline/steps/cd/Capacity"
              },
              "description": {
                "desc": "This is the description for AsgPhasedDeployStepInfo"
              }
            }
          },
          "AsgSetupStepNode": {
            "title": "AsgSetupStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AsgSetupStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AsgSetup"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgSetup"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgSetupStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AsgSetupStepInfo": {
            "title": "AsgSetupStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "asgName",
                  "resizeStrategy",
                  "instances"
                ],
                "properties": {
                  "asgName": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "instances": {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgInstances"
                  },
                  "resizeStrategy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "resize_new_first",
                          "downsize_old_first"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "asgName",
              "resizeStrategy",
              "instances"
            ],
            "properties": {
              "asgName": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "instances": {
                "$ref": "#/definitions/pipeline/steps/cd/AsgInstances"
              },
              "resizeStrategy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "resize_new_first",
                      "downsize_old_first"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AsgSetupStepInfo"
              }
            }
          },
          "AsgRollbackStepNode": {
            "title": "AsgRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AsgRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AsgRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AsgRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AsgRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AsgRollbackStepInfo": {
            "title": "AsgRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AsgRollbackStepInfo"
              }
            }
          },
          "DownloadManifestsStepNode": {
            "title": "DownloadManifestsStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for DownloadManifestsStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DownloadManifests"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DownloadManifests"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/DownloadManifestsStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "DownloadManifestsStepInfo": {
            "title": "DownloadManifestsStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for DownloadManifestsStepInfo"
              }
            }
          },
          "TasRouteMappingStepNode": {
            "title": "TasRouteMappingStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TasRouteMappingStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "RouteMapping"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "RouteMapping"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TasRouteMappingStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TasRouteMappingStepInfo": {
            "title": "TasRouteMappingStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "appName",
                  "routeType",
                  "routes"
                ],
                "properties": {
                  "appName": {
                    "type": "string",
                    "minLength": 1
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "routeType": {
                    "type": "string",
                    "enum": [
                      "Map",
                      "UnMap"
                    ]
                  },
                  "routes": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "appName",
              "routeType",
              "routes"
            ],
            "properties": {
              "appName": {
                "type": "string",
                "minLength": 1
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "routeType": {
                "type": "string",
                "enum": [
                  "Map",
                  "UnMap"
                ]
              },
              "routes": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for TasRouteMappingStepInfo"
              }
            }
          },
          "UpdateReleaseRepoStepNode": {
            "title": "UpdateReleaseRepoStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for UpdateReleaseRepoStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GitOpsUpdateReleaseRepo"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GitOpsUpdateReleaseRepo"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/UpdateReleaseRepoStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "UpdateReleaseRepoStepInfo": {
            "title": "UpdateReleaseRepoStepInfo",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "prTitle": {
                "type": "string"
              },
              "allowEmptyCommit": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "disableGitRestraint": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "waitForMerge": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "stringMap": {
                "$ref": "#/definitions/pipeline/steps/common/ParameterFieldMapStringString"
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/steps/cd/UpdateReleaseRepoStringNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/steps/cd/UpdateReleaseRepoNumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/steps/cd/UpdateReleaseRepoSecretNGVariable"
                    }
                  ]
                }
              }
            },
            "$ref": "#/definitions/pipeline/common/StepSpecType"
          },
          "UpdateReleaseRepoStringNGVariable": {
            "title": "UpdateReleaseRepoStringNGVariable",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/NGVariable"
              },
              {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "default": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string",
                    "pattern": "^[a-zA-Z_][0-9a-zA-Z_\\.\\[\\]$-]{0,127}$"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "String"
                    ]
                  },
                  "value": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for UpdateReleaseRepoStringNGVariable"
              }
            }
          },
          "UpdateReleaseRepoNumberNGVariable": {
            "title": "UpdateReleaseRepoNumberNGVariable",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/NGVariable"
              },
              {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "default": {
                    "type": "number",
                    "format": "double"
                  },
                  "name": {
                    "type": "string",
                    "pattern": "^[a-zA-Z_][0-9a-zA-Z_\\.\\[\\]$-]{0,127}$"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "Number"
                    ]
                  },
                  "value": {
                    "oneOf": [
                      {
                        "type": "number",
                        "format": "double"
                      },
                      {
                        "type": "string",
                        "pattern": "((^[+-]?[0-9]*\\.?[0-9]+$)|(<\\+.+>.*))"
                      },
                      {
                        "type": "string",
                        "maxLength": 0
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for UpdateReleaseRepoNumberNGVariable"
              }
            }
          },
          "UpdateReleaseRepoSecretNGVariable": {
            "title": "UpdateReleaseRepoSecretNGVariable",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/NGVariable"
              },
              {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "default": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string",
                    "pattern": "^[a-zA-Z_][0-9a-zA-Z_\\.\\[\\]$-]{0,127}$"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "Secret"
                    ]
                  },
                  "value": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for UpdateReleaseRepoSecretNGVariable"
              }
            }
          },
          "AiTestAutomationStepNode": {
            "title": "AiTestAutomationStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AiTestAutomationStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AiTestAutomation"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AiTestAutomation"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AiTestAutomationStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AiTestAutomationStepInfo": {
            "title": "AiTestAutomationStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "applicationName"
                ],
                "properties": {
                  "testType": {
                    "type": "string",
                    "enum": [
                      "aiTestAutomation",
                      "playwright"
                    ],
                    "description": "Type of test: aiTestAutomation (default) or playwright"
                  },
                  "applicationName": {
                    "type": "string",
                    "description": "Name of the application to test"
                  },
                  "environmentName": {
                    "type": "string",
                    "description": "Name of the environment where test will be executed"
                  },
                  "testSuiteName": {
                    "type": "string",
                    "description": "Name of the test suite to execute"
                  },
                  "tunnelName": {
                    "type": "string",
                    "description": "Name of the tunnel to use"
                  },
                  "buildId": {
                    "type": "string",
                    "description": "ID of the Playwright build to execute"
                  },
                  "executionAliasId": {
                    "type": "string",
                    "description": "Execution alias ID for variable resolution"
                  },
                  "configOverride": {
                    "type": "string",
                    "description": "Configuration override as JSON string"
                  },
                  "variables": {
                    "type": "array",
                    "description": "Per-execution variable overrides (variable_scope='build_run', highest precedence)",
                    "items": {
                      "type": "object",
                      "required": [
                        "key",
                        "valueType"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "Variable identifier (carried back from the alias defaults)"
                        },
                        "key": {
                          "type": "string",
                          "description": "Variable key"
                        },
                        "value": {
                          "type": "string",
                          "description": "Variable value (literal string for string, secret reference for secret)"
                        },
                        "valueType": {
                          "type": "string",
                          "enum": [
                            "string",
                            "secret"
                          ],
                          "description": "Variable value type"
                        }
                      }
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "applicationName"
            ],
            "properties": {
              "testType": {
                "type": "string",
                "enum": [
                  "aiTestAutomation",
                  "playwright"
                ],
                "description": "Type of test: aiTestAutomation (default) or playwright"
              },
              "applicationName": {
                "type": "string",
                "description": "Name of the application to test"
              },
              "environmentName": {
                "type": "string",
                "description": "Name of the environment where test will be executed"
              },
              "testSuiteName": {
                "type": "string",
                "description": "Name of the test suite to execute"
              },
              "tunnelName": {
                "type": "string",
                "description": "Name of the tunnel to use"
              },
              "buildId": {
                "type": "string",
                "description": "ID of the Playwright build to execute"
              },
              "executionAliasId": {
                "type": "string",
                "description": "Execution alias ID for variable resolution"
              },
              "configOverride": {
                "type": "string",
                "description": "Configuration override as JSON string"
              },
              "variables": {
                "type": "array",
                "description": "Per-execution variable overrides (variable_scope='build_run', highest precedence)",
                "items": {
                  "type": "object",
                  "required": [
                    "key",
                    "valueType"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Variable identifier (carried back from the alias defaults)"
                    },
                    "key": {
                      "type": "string",
                      "description": "Variable key"
                    },
                    "value": {
                      "type": "string",
                      "description": "Variable value (literal string for string, secret reference for secret)"
                    },
                    "valueType": {
                      "type": "string",
                      "enum": [
                        "string",
                        "secret"
                      ],
                      "description": "Variable value type"
                    }
                  }
                }
              }
            }
          },
          "TerragruntDestroyStepNode": {
            "title": "TerragruntDestroyStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TerragruntDestroyStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "TerragruntDestroy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TerragruntDestroy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/TerragruntDestroyStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "TerragruntDestroyStepInfo": {
            "title": "TerragruntDestroyStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "configuration",
                  "provisionerIdentifier"
                ],
                "properties": {
                  "configuration": {
                    "$ref": "#/definitions/pipeline/steps/cd/TerragruntStepConfiguration"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "provisionerIdentifier": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "configuration",
              "provisionerIdentifier"
            ],
            "properties": {
              "configuration": {
                "$ref": "#/definitions/pipeline/steps/cd/TerragruntStepConfiguration"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "metadata": {
                "type": "string"
              },
              "provisionerIdentifier": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for TerragruntDestroyStepInfo"
              }
            }
          },
          "AIVerifyNGStepNode": {
            "title": "AIVerifyNGStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AIVerifyNGStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AIVerifyNG"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AIVerifyNG"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AIVerifyNGStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AIVerifyNGStepInfo": {
            "title": "AIVerifyNGStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "healthSourceRefs",
                  "dataCollectionWindow",
                  "dataCollectionInfrastructure"
                ],
                "properties": {
                  "healthSourceRefs": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        },
                        "minItems": 1
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "dataCollectionInfrastructure": {
                    "$ref": "#/definitions/pipeline/steps/cd/DataCollectionInfrastructure"
                  },
                  "dataCollectionWindow": {
                    "description": "Data collection window as a duration string '<n>m' (minutes) or '<n>h' (hours), e.g. '30m', '1h', '2h'; may also be a runtime expression.",
                    "oneOf": [
                      {
                        "type": "string",
                        "pattern": "^[1-9][0-9]*[mMhH]$",
                        "minLength": 2
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "envVariables": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  },
                  "optionalConfigurations": {
                    "description": "Optional. Omit entirely or set any subset of nested fields (all nested fields are optional).",
                    "allOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/AIVerifyOptionalConfigurations"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "healthSourceRefs",
              "dataCollectionWindow",
              "dataCollectionInfrastructure"
            ],
            "properties": {
              "healthSourceRefs": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "dataCollectionInfrastructure": {
                "$ref": "#/definitions/pipeline/steps/cd/DataCollectionInfrastructure"
              },
              "dataCollectionWindow": {
                "description": "Data collection window as a duration string '<n>m' (minutes) or '<n>h' (hours), e.g. '30m', '1h', '2h'; may also be a runtime expression.",
                "oneOf": [
                  {
                    "type": "string",
                    "pattern": "^[1-9][0-9]*[mMhH]$",
                    "minLength": 2
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "envVariables": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "optionalConfigurations": {
                "description": "Optional. Omit entirely or set any subset of nested fields (all nested fields are optional).",
                "allOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AIVerifyOptionalConfigurations"
                  }
                ]
              },
              "description": {
                "desc": "AI Verify NG Step - AI-powered deployment verification using health sources"
              }
            }
          },
          "DataCollectionInfrastructure": {
            "title": "DataCollectionInfrastructure",
            "type": "object",
            "required": [
              "type",
              "spec"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "KubernetesDirect"
                ]
              },
              "spec": {
                "type": "object",
                "required": [
                  "connectorRef",
                  "namespace"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "namespace": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/steps/cd/DataCollectionInfrastructureResources"
                  }
                }
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "DataCollectionInfrastructureResources": {
            "title": "DataCollectionInfrastructureResources",
            "description": "Optional resource requests/limits for AI Verify data collection infrastructure. Omit the block entirely, or include only the fields you need; CPU and memory are optional under requests and limits.",
            "type": "object",
            "properties": {
              "limits": {
                "$ref": "#/definitions/pipeline/common/Limits"
              },
              "requests": {
                "$ref": "#/definitions/pipeline/common/Limits"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "AIVerifyOptionalConfigurations": {
            "title": "AIVerifyOptionalConfigurations",
            "description": "Optional cv-nextgen parity fields; not mapped to plugin env in current release. The parent step may omit optionalConfigurations entirely, or supply an empty object. When present, every property below remains optional; set only the fields you need.",
            "type": "object",
            "required": [],
            "properties": {
              "sensitivity": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "verificationType": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "failOnNoAnalysis": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "controlNodeRegexPattern": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "testNodeRegexPattern": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "baselineEndTime": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "verificationStartTime": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "AzureFunctionDeployStepNode": {
            "title": "AzureFunctionDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AzureFunctionDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AzureFunctionDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureFunctionDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureFunctionDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AzureFunctionDeployStepInfo": {
            "title": "AzureFunctionDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "deployCommandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "deploymentSlot": {
                    "type": "string"
                  },
                  "functionApp": {
                    "type": "string"
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "deploymentSlot",
              "functionApp"
            ],
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "deployCommandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "deploymentSlot": {
                "type": "string",
                "minLength": 1
              },
              "functionApp": {
                "type": "string",
                "minLength": 1
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for AzureFunctionDeployStepInfo"
              }
            }
          },
          "AzureFunctionRollbackStepNode": {
            "title": "AzureFunctionRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AzureFunctionRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AzureFunctionRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureFunctionRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureFunctionRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AzureFunctionRollbackStepInfo": {
            "title": "AzureFunctionRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for AzureFunctionRollbackStepInfo"
              }
            }
          },
          "ServerlessAwsLambdaDeployV2StepNode": {
            "title": "ServerlessAwsLambdaDeployV2StepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ServerlessAwsLambdaDeployV2StepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ServerlessAwsLambdaDeployV2"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ServerlessAwsLambdaDeployV2"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ServerlessAwsLambdaDeployV2StepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ServerlessAwsLambdaDeployV2StepInfo": {
            "title": "ServerlessAwsLambdaDeployV2StepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "deployCommandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "serverlessVersion": {
                    "type": "string"
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "deployCommandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "serverlessVersion": {
                "type": "string"
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ServerlessAwsLambdaDeployV2StepInfo"
              }
            }
          },
          "ServerlessAwsLambdaPackageV2StepNode": {
            "title": "ServerlessAwsLambdaPackageV2StepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ServerlessAwsLambdaPackageV2StepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ServerlessAwsLambdaPackageV2"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ServerlessAwsLambdaPackageV2"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ServerlessAwsLambdaPackageV2StepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ServerlessAwsLambdaPackageV2StepInfo": {
            "title": "ServerlessAwsLambdaPackageV2StepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "packageCommandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "serverlessVersion": {
                    "type": "string"
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "packageCommandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "serverlessVersion": {
                "type": "string"
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ServerlessAwsLambdaPackageV2StepInfo"
              }
            }
          },
          "ServerlessAwsLambdaPrepareRollbackV2StepNode": {
            "title": "ServerlessAwsLambdaPrepareRollbackV2StepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ServerlessAwsLambdaPrepareRollbackV2StepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ServerlessAwsLambdaPrepareRollbackV2"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ServerlessAwsLambdaPrepareRollbackV2"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ServerlessAwsLambdaPrepareRollbackV2StepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ServerlessAwsLambdaPrepareRollbackV2StepInfo": {
            "title": "ServerlessAwsLambdaPrepareRollbackV2StepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "serverlessVersion": {
                    "type": "string"
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "serverlessVersion": {
                "type": "string"
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ServerlessAwsLambdaPrepareRollbackV2StepInfo"
              }
            }
          },
          "ServerlessAwsLambdaRollbackV2StepNode": {
            "title": "ServerlessAwsLambdaRollbackV2StepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ServerlessAwsLambdaRollbackV2StepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ServerlessAwsLambdaRollbackV2"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ServerlessAwsLambdaRollbackV2"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ServerlessAwsLambdaRollbackV2StepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ServerlessAwsLambdaRollbackV2StepInfo": {
            "title": "ServerlessAwsLambdaRollbackV2StepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "serverlessVersion": {
                    "type": "string"
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "serverlessVersion": {
                "type": "string"
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ServerlessAwsLambdaRollbackV2StepInfo"
              }
            }
          },
          "UpdateGitOpsAppStepNode": {
            "title": "UpdateGitOpsAppStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for UpdateGitOpsAppStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "UpdateGitOpsApp"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "UpdateGitOpsApp"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/UpdateGitOpsAppStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "UpdateGitOpsAppStepInfo": {
            "title": "UpdateGitOpsAppStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "agentId",
                  "applicationName"
                ],
                "properties": {
                  "agentId": [
                    {
                      "type": "string"
                    }
                  ],
                  "applicationName": [
                    {
                      "type": "string"
                    }
                  ],
                  "helm": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/HelmValues"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "kustomize": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/KustomizeValues"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "targetRevision": [
                    {
                      "type": "string"
                    }
                  ],
                  "sources": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "$ref": "#/definitions/pipeline/steps/cd/git_ops_application_source"
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "HelmValues": {
            "title": "HelmValues",
            "type": "object",
            "properties": {
              "fileParameters": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmFileParameters"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "parameters": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmParameters"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "valueFiles": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for HelmValues"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "HelmFileParameters": {
            "title": "HelmFileParameters",
            "type": "object",
            "required": [
              "name",
              "path"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "path": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for HelmFileParameters"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "HelmParameters": {
            "title": "HelmParameters",
            "type": "object",
            "required": [
              "name",
              "value"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "value": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for HelmParameters"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "KustomizeValues": {
            "title": "KustomizeValues",
            "type": "object",
            "properties": {
              "images": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "namespace": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "replicas": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/KustomizeReplicas"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for KustomizeValues"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "KustomizeReplicas": {
            "title": "KustomizeReplicas",
            "type": "object",
            "required": [
              "count",
              "name"
            ],
            "properties": {
              "count": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for KustomizeReplicas"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "git_ops_application_source": {
            "title": "git_ops_application_source",
            "type": "object",
            "properties": {
              "chart": {
                "description": "Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.",
                "type": "string"
              },
              "helm": {
                "$ref": "#/definitions/pipeline/steps/cd/HelmValues"
              },
              "kustomize": {
                "$ref": "#/definitions/pipeline/steps/cd/KustomizeValues"
              },
              "path": {
                "description": "Path is a directory path within the Git repository, and is only valid for applications sourced from Git.",
                "type": "string"
              },
              "ref": {
                "description": "Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.",
                "type": "string"
              },
              "repoURL": {
                "type": "string",
                "title": "RepoURL is the URL to the repository (Git or Helm) that contains the application manifests"
              },
              "targetRevision": {
                "description": "TargetRevision defines the revision of the source to sync the application to.\nIn case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.\nIn case of Helm, this is a semver tag for the Chart's version.",
                "type": "string"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "K8sTrafficRoutingStepNode": {
            "title": "K8sTrafficRoutingStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for K8sTrafficRoutingStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "K8sTrafficRouting"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "K8sTrafficRouting"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "K8sTrafficRoutingStepInfo": {
            "title": "K8sTrafficRoutingStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "type",
                  "trafficRouting"
                ],
                "minProperties": 1,
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "inherit",
                      "config"
                    ]
                  },
                  "trafficRouting": {
                    "type": "object"
                  }
                },
                "allOf": [
                  {
                    "if": {
                      "properties": {
                        "type": {
                          "const": "inherit"
                        }
                      }
                    },
                    "then": {
                      "properties": {
                        "trafficRouting": {
                          "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingSpecInherit"
                        }
                      }
                    }
                  },
                  {
                    "if": {
                      "properties": {
                        "type": {
                          "const": "config"
                        }
                      }
                    },
                    "then": {
                      "properties": {
                        "trafficRouting": {
                          "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingSpec"
                        }
                      }
                    }
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "K8sTrafficRoutingSpecInherit": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "title": "K8sTrafficRoutingSpecInherit",
            "type": "object",
            "required": [
              "routes"
            ],
            "minProperties": 1,
            "additionalProperties": false,
            "properties": {
              "routes": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/RouteSpecInherit"
                    },
                    "minItems": 1
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              }
            }
          },
          "RouteSpecInherit": {
            "title": "RouteSpecInherit",
            "type": "object",
            "required": [
              "route"
            ],
            "properties": {
              "route": {
                "allOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/RouteSpecBase"
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "DownloadAwsS3StepNode": {
            "title": "DownloadAwsS3StepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for DownloadAwsS3StepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DownloadAwsS3"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DownloadAwsS3"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/DownloadAwsS3StepInfo"
                    }
                  }
                }
              }
            ]
          },
          "DownloadAwsS3StepInfo": {
            "title": "DownloadAwsS3StepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "downloadPath": {
                    "type": "string"
                  },
                  "bucketName": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  },
                  "paths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputFilePathsContent": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "downloadPath": {
                "type": "string"
              },
              "bucketName": {
                "type": "string"
              },
              "region": {
                "type": "string"
              },
              "paths": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "outputFilePathsContent": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for DownloadAwsS3StepInfo"
              }
            }
          },
          "DownloadGcsStepNode": {
            "title": "DownloadGcsStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for DownloadGcsStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DownloadGcs"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DownloadGcs"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/DownloadGcsStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "DownloadGcsStepInfo": {
            "title": "DownloadGcsStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "downloadPath": {
                    "type": "string"
                  },
                  "bucketName": {
                    "type": "string"
                  },
                  "filePath": {
                    "type": "string"
                  },
                  "outputFilePathsContent": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "downloadPath": {
                "type": "string"
              },
              "bucketName": {
                "type": "string"
              },
              "filePath": {
                "type": "string"
              },
              "outputFilePathsContent": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              }
            },
            "description": "Downloads files from Google Cloud Storage (GCS) bucket.\n\nExample YAML:\n```yaml\n- step:\n    type: DownloadGcs\n    name: DownloadGcs_1\n    identifier: DownloadGcs_1\n    spec:\n      connectorRef: account.GcpConnector\n      bucketName: my-gcs-bucket\n      filePath: path/to/file.yaml\n      downloadPath: /harness/manifests\n    description: Downloads manifest from GCS bucket\n    timeout: 10m\n```\n"
          },
          "DownloadHarnessStoreStepNode": {
            "title": "DownloadHarnessStoreStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for DownloadHarnessStoreStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DownloadHarnessStore"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DownloadHarnessStore"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/DownloadHarnessStoreStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "DownloadHarnessStoreStepInfo": {
            "title": "DownloadHarnessStoreStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "downloadPath": {
                    "type": "string"
                  },
                  "files": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "outputFilePathsContent": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "downloadPath": {
                "type": "string"
              },
              "files": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "outputFilePathsContent": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for DownloadHarnessStoreStepInfo"
              }
            }
          },
          "K8sPatchStepNode": {
            "title": "K8sPatchStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for K8sPatchStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "K8sPatch"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "K8sPatch"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sPatchStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "K8sPatchStepInfo": {
            "title": "K8sPatchStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "workload": {
                    "type": "string",
                    "minLength": 1
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "source": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  },
                  "recordChangeCause": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "mergeStrategyType": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Merge",
                          "Json",
                          "Strategic"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandFlags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/K8sPatchStepCommandFlag"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "skipSteadyStateCheck": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "source",
              "workload",
              "mergeStrategyType"
            ],
            "properties": {
              "workload": {
                "type": "string",
                "minLength": 1
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "source": {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
              },
              "recordChangeCause": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "mergeStrategyType": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Merge",
                      "Json",
                      "Strategic"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "commandFlags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sPatchStepCommandFlag"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "skipSteadyStateCheck": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for K8sPatchStepInfo"
              }
            }
          },
          "K8sPatchStepCommandFlag": {
            "title": "K8sPatchStepCommandFlag",
            "type": "object",
            "required": [
              "commandType"
            ],
            "properties": {
              "commandType": {
                "type": "string",
                "enum": [
                  "Patch"
                ]
              },
              "flag": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for K8sPatchStepCommandFlag"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "K8sRolloutStepNode": {
            "title": "K8sRolloutStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for K8sRolloutStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "K8sRollout"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "K8sRollout"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sRolloutStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "K8sRolloutStepInfo": {
            "title": "K8sRolloutStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "resources"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/steps/cd/RolloutResourcesWrapper"
                  },
                  "commandFlags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/K8sRolloutStepCommandFlag"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "command": {
                    "type": "string",
                    "enum": [
                      "restart",
                      "resume",
                      "status",
                      "undo",
                      "pause",
                      "history"
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "resources",
              "command"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/steps/cd/RolloutResourcesWrapper"
              },
              "commandFlags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/K8sRolloutStepCommandFlag"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "command": {
                "type": "string",
                "enum": [
                  "restart",
                  "resume",
                  "status",
                  "undo",
                  "pause",
                  "history"
                ]
              },
              "description": {
                "desc": "This is the description for K8sRolloutStepInfo"
              }
            }
          },
          "RolloutResourcesWrapper": {
            "title": "RolloutResourcesWrapper",
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "ResourceName",
                  "ReleaseName",
                  "ManifestPath"
                ]
              },
              "description": {
                "desc": "This is the description for RolloutResourcesWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ManifestPath"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/RolloutManifestPathSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ResourceName"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/RolloutResourceNameSpec"
                    }
                  }
                }
              }
            ]
          },
          "RolloutManifestPathSpec": {
            "title": "RolloutManifestPathSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/RolloutResourcesBaseSpec"
              },
              {
                "type": "object",
                "properties": {
                  "allManifestPaths": {
                    "type": "boolean"
                  },
                  "manifestPaths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for RolloutManifestPathSpec"
              }
            }
          },
          "RolloutResourcesBaseSpec": {
            "title": "RolloutResourcesBaseSpec",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for RolloutResourcesBaseSpec"
              }
            }
          },
          "RolloutResourceNameSpec": {
            "title": "RolloutResourceNameSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/RolloutResourcesBaseSpec"
              },
              {
                "type": "object",
                "required": [
                  "resourceNames"
                ],
                "properties": {
                  "resourceNames": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ],
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for RolloutesourceNameSpec"
              }
            }
          },
          "K8sRolloutStepCommandFlag": {
            "title": "K8sRolloutStepCommandFlag",
            "type": "object",
            "required": [
              "commandType"
            ],
            "properties": {
              "commandType": {
                "type": "string",
                "enum": [
                  "Rollout"
                ]
              },
              "flag": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for K8sRolloutStepCommandFlag"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "GitOpsGetAppDetailsStepNode": {
            "title": "GitOpsGetAppDetailsStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GitOpsGetAppDetailsStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GitOpsGetAppDetails"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GitOpsGetAppDetails"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GitOpsGetAppDetailsStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GitOpsGetAppDetailsStepInfo": {
            "title": "GitOpsGetAppDetailsStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "agentId": {
                    "type": "string"
                  },
                  "applicationName": {
                    "type": "string"
                  },
                  "applicationRegex": {
                    "type": "string"
                  },
                  "applicationsList": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/AgentApplicationTargets"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "hardRefresh": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                },
                "anyOf": [
                  {
                    "oneOf": [
                      {
                        "required": [
                          "applicationRegex"
                        ]
                      },
                      {
                        "required": [
                          "applicationsList"
                        ]
                      },
                      {
                        "required": [
                          "applicationName",
                          "agentId"
                        ]
                      }
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "agentId": {
                "type": "string"
              },
              "applicationName": {
                "type": "string"
              },
              "applicationRegex": {
                "type": "string"
              },
              "applicationsList": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/AgentApplicationTargets"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "hardRefresh": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for GitOpsGetAppDetailsStepInfo"
              }
            },
            "anyOf": [
              {
                "oneOf": [
                  {
                    "required": [
                      "applicationRegex"
                    ]
                  },
                  {
                    "required": [
                      "applicationsList"
                    ]
                  },
                  {
                    "required": [
                      "applicationName",
                      "agentId"
                    ]
                  }
                ]
              }
            ]
          },
          "HelmBlueGreenSwapStepNode": {
            "title": "HelmBlueGreenSwapStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for HelmBlueGreenSwapStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "HelmBlueGreenSwapStep"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HelmBlueGreenSwapStep"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmBlueGreenSwapStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "HelmBlueGreenSwapStepInfo": {
            "title": "HelmBlueGreenSwapStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandFlags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/HelmManifestCommandFlag"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "commandFlags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmManifestCommandFlag"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for HelmBlueGreenSwapStepInfo"
              }
            }
          },
          "HelmBlueGreenStepNode": {
            "title": "HelmBlueGreenStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for HelmBlueGreenStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "HelmBGDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HelmBGDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmBlueGreenStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "HelmBlueGreenStepInfo": {
            "title": "HelmBlueGreenStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ignoreReleaseHistFailStatus": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "skipSteadyStateCheck": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "useUpgradeInstall": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "runChartTests": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandFlags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/HelmManifestCommandFlag"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ignoreReleaseHistFailStatus": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "skipSteadyStateCheck": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "useUpgradeInstall": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "runChartTests": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "commandFlags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmManifestCommandFlag"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for HelmBlueGreenStepInfo"
              }
            }
          },
          "HelmCanaryDeleteStepNode": {
            "title": "HelmCanaryDeleteStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for HelmCanaryDeleteStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "HelmCanaryDelete"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HelmCanaryDelete"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmCanaryDeleteStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "HelmCanaryDeleteStepInfo": {
            "title": "HelmCanaryDeleteStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "commandFlags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/HelmManifestCommandFlag"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "commandFlags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmManifestCommandFlag"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for HelmCanaryDeleteStepInfo"
              }
            }
          },
          "HelmCanaryDeployStepNode": {
            "title": "HelmCanaryDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for HelmCanaryDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "HelmCanaryDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HelmCanaryDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmCanaryDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "HelmCanaryDeployStepInfo": {
            "title": "HelmCanaryDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "instanceSelection"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "instanceSelection": {
                    "$ref": "#/definitions/pipeline/steps/cd/InstanceSelectionWrapper"
                  },
                  "ignoreReleaseHistFailStatus": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "skipSteadyStateCheck": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "useUpgradeInstall": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "runChartTests": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandFlags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/HelmManifestCommandFlag"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "instanceSelection"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "instanceSelection": {
                "$ref": "#/definitions/pipeline/steps/cd/InstanceSelectionWrapper"
              },
              "ignoreReleaseHistFailStatus": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "skipSteadyStateCheck": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "useUpgradeInstall": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "runChartTests": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "commandFlags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmManifestCommandFlag"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for HelmCanaryDeployStepInfo"
              }
            }
          },
          "AzureContainerAppsDeployStepNode": {
            "title": "AzureContainerAppsDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AzureContainerAppsDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AzureContainerAppsDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureContainerAppsDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureContainerAppsDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AzureContainerAppsDeployStepInfo": {
            "title": "AzureContainerAppsDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "forceTrafficToLatest": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "forceTrafficToLatest": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for AzureContainerAppsDeployStepInfo"
              }
            }
          },
          "AzureContainerAppsPrepareRollbackDataStepNode": {
            "title": "AzureContainerAppsPrepareRollbackDataStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AzureContainerAppsPrepareRollbackDataStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AzureContainerAppsPrepareRollbackData"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureContainerAppsPrepareRollbackData"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureContainerAppsPrepareRollbackDataStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AzureContainerAppsPrepareRollbackDataStepInfo": {
            "title": "AzureContainerAppsPrepareRollbackDataStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for AzureContainerAppsPrepareRollbackDataStepInfo"
              }
            }
          },
          "AzureContainerAppsTrafficShiftStepNode": {
            "title": "AzureContainerAppsTrafficShiftStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AzureContainerAppsTrafficShiftStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AzureContainerAppsTrafficShift"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureContainerAppsTrafficShift"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureContainerAppsTrafficShiftStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AzureContainerAppsTrafficShiftStepInfo": {
            "title": "AzureContainerAppsTrafficShiftStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "revisionTrafficDetails": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/AzureContainerAppsRevisionMetadata"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "revisionTrafficDetails": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureContainerAppsRevisionMetadata"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for AzureContainerAppsTrafficShiftStepInfo"
              }
            }
          },
          "AzureContainerAppsRevisionMetadata": {
            "title": "AzureContainerAppsRevisionMetadata",
            "type": "object",
            "required": [
              "revisionName"
            ],
            "properties": {
              "revisionName": {
                "type": "string"
              },
              "trafficWeight": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "label": {
                "type": "string"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "AzureContainerAppsRollbackStepNode": {
            "title": "AzureContainerAppsRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for AzureContainerAppsRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AzureContainerAppsRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureContainerAppsRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureContainerAppsRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "AzureContainerAppsRollbackStepInfo": {
            "title": "AzureContainerAppsRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for AzureContainerAppsRollbackStepInfo"
              }
            }
          },
          "GoogleCloudRunPrepareRollbackDataStepNode": {
            "title": "GoogleCloudRunPrepareRollbackDataStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GoogleCloudRunPrepareRollbackDataStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GoogleCloudRunPrepareRollbackData"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudRunPrepareRollbackData"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunPrepareRollbackDataStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GoogleCloudRunPrepareRollbackDataStepInfo": {
            "title": "GoogleCloudRunPrepareRollbackDataStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for GoogleCloudRunPrepareRollbackDataStepInfo"
              }
            }
          },
          "GoogleCloudRunDeployStepNode": {
            "title": "GoogleCloudRunDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GoogleCloudRunDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GoogleCloudRunDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudRunDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GoogleCloudRunDeployStepInfo": {
            "title": "GoogleCloudRunDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  },
                  "skipTrafficShift": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "skipTrafficShift": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for GoogleCloudRunDeployStepInfo"
              }
            }
          },
          "GoogleCloudRunTrafficShiftStepNode": {
            "title": "GoogleCloudRunTrafficShiftStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GoogleCloudRunTrafficShiftStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GoogleCloudRunTrafficShift"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudRunTrafficShift"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunTrafficShiftStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GoogleCloudRunTrafficShiftStepInfo": {
            "title": "GoogleCloudRunTrafficShiftStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  },
                  "revisionTrafficDetails": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunRevisionMetadata"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for GoogleCloudRunTrafficShiftStepInfo"
              }
            }
          },
          "GoogleCloudRunRevisionMetadata": {
            "title": "GoogleCloudRunRevisionMetadata",
            "type": "object",
            "required": [
              "revisionName"
            ],
            "properties": {
              "revisionName": {
                "type": "string",
                "description": "The name of the Google Cloud Run revision."
              },
              "trafficValue": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ],
                "description": "The traffic value associated with the revision."
              },
              "tag": {
                "type": "string",
                "description": "Comma-separated tags for the revision."
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "GoogleCloudRunRollbackStepNode": {
            "title": "GoogleCloudRunRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GoogleCloudRunRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GoogleCloudRunRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudRunRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GoogleCloudRunRollbackStepInfo": {
            "title": "GoogleCloudRunRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for GoogleCloudRunRollbackStepInfo"
              }
            }
          },
          "GoogleMigDeployStepNode": {
            "title": "GoogleMigDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for Google MigDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+[\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$)$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GoogleMigDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleMigDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleMigDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GoogleMigDeployStepInfo": {
            "title": "GoogleMigDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "mig"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  },
                  "mig": {
                    "type": "string"
                  },
                  "targetSize": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "mig": {
                "type": "string"
              },
              "targetSize": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for GoogleMigDeployStepInfo"
              }
            }
          },
          "GoogleMigBlueGreenDeployStepNode": {
            "title": "GoogleMigBlueGreenDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for Google MigBlueGreenDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+[\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$)$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GoogleMigBlueGreenDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleMigBlueGreenDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleMigBlueGreenDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GoogleMigBlueGreenDeployStepInfo": {
            "title": "GoogleMigBlueGreenDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "blueEnvironment"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  },
                  "blueEnvironment": {
                    "type": "object",
                    "properties": {
                      "backendService": {
                        "type": "string"
                      },
                      "mig": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "backendService",
                      "mig"
                    ]
                  },
                  "greenEnvironment": {
                    "type": "object",
                    "description": "Optional green environment configuration. If not provided, will be created during deployment.",
                    "properties": {
                      "backendService": {
                        "type": "string"
                      },
                      "mig": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "backendService",
                      "mig"
                    ]
                  },
                  "trafficConfig": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "CSM"
                        ]
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "allOf": [
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "CSM"
                            }
                          }
                        },
                        "then": {
                          "properties": {
                            "spec": {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "GRPCRoute",
                                    "HTTPRoute"
                                  ]
                                },
                                "route": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "type",
                                "route"
                              ]
                            }
                          },
                          "required": [
                            "spec"
                          ]
                        }
                      }
                    ]
                  },
                  "targetSize": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "blueEnvironment": {
                "type": "object",
                "properties": {
                  "backendService": {
                    "type": "string"
                  },
                  "mig": {
                    "type": "string"
                  }
                },
                "required": [
                  "backendService",
                  "mig"
                ]
              },
              "greenEnvironment": {
                "type": "object",
                "properties": {
                  "backendService": {
                    "type": "string"
                  },
                  "mig": {
                    "type": "string"
                  }
                },
                "required": [
                  "backendService",
                  "mig"
                ]
              },
              "trafficConfig": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "CSM"
                    ]
                  }
                },
                "required": [
                  "type"
                ],
                "allOf": [
                  {
                    "if": {
                      "properties": {
                        "type": {
                          "const": "CSM"
                        }
                      }
                    },
                    "then": {
                      "properties": {
                        "spec": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "GRPCRoute",
                                "HTTPRoute"
                              ]
                            },
                            "route": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "type",
                            "route"
                          ]
                        }
                      },
                      "required": [
                        "spec"
                      ]
                    }
                  }
                ]
              },
              "targetSize": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for GoogleMigBlueGreenDeployStepInfo"
              }
            }
          },
          "GoogleMigTrafficShiftStepNode": {
            "title": "GoogleMigTrafficShiftStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for Google MigTrafficShiftStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+[\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$)$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GoogleMigTrafficShift"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleMigTrafficShift"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleMigTrafficShiftStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GoogleMigTrafficShiftStepInfo": {
            "title": "GoogleMigTrafficShiftStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  },
                  "downsizeOldMig": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "trafficConfig": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "CSM"
                        ]
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "allOf": [
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "CSM"
                            }
                          }
                        },
                        "then": {
                          "properties": {
                            "spec": {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "GRPCRoute",
                                    "HTTPRoute"
                                  ]
                                },
                                "route": {
                                  "type": "string"
                                },
                                "destinations": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "destination": {
                                        "type": "string"
                                      },
                                      "weight": {
                                        "oneOf": [
                                          {
                                            "type": "integer",
                                            "format": "int32",
                                            "minimum": 0,
                                            "maximum": 100
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(<\\+.+>.*)",
                                            "minLength": 1
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "destination",
                                      "weight"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "route",
                                "destinations"
                              ]
                            }
                          },
                          "required": [
                            "spec"
                          ]
                        }
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "downsizeOldMig": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "trafficConfig": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "CSM"
                    ]
                  }
                },
                "required": [
                  "type"
                ],
                "allOf": [
                  {
                    "if": {
                      "properties": {
                        "type": {
                          "const": "CSM"
                        }
                      }
                    },
                    "then": {
                      "properties": {
                        "spec": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "GRPCRoute",
                                "HTTPRoute"
                              ]
                            },
                            "route": {
                              "type": "string"
                            },
                            "destinations": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "destination": {
                                    "type": "string"
                                  },
                                  "weight": {
                                    "oneOf": [
                                      {
                                        "type": "integer",
                                        "format": "int32",
                                        "minimum": 0,
                                        "maximum": 100
                                      },
                                      {
                                        "type": "string",
                                        "pattern": "(<\\+.+>.*)",
                                        "minLength": 1
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "destination",
                                  "weight"
                                ]
                              }
                            }
                          },
                          "required": [
                            "type",
                            "route",
                            "destinations"
                          ]
                        }
                      },
                      "required": [
                        "spec"
                      ]
                    }
                  }
                ]
              },
              "description": {
                "desc": "This is the description for GoogleMigTrafficShiftStepInfo"
              }
            }
          },
          "GoogleMigBlueGreenRollbackStepNode": {
            "title": "GoogleMigBlueGreenRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for Google MigBlueGreenRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+[\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$)$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GoogleMigBlueGreenRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleMigBlueGreenRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleMigBlueGreenRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GoogleMigBlueGreenRollbackStepInfo": {
            "title": "GoogleMigBlueGreenRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for GoogleMigBlueGreenRollbackStepInfo"
              }
            }
          },
          "GoogleMigSteadyStateStepNode": {
            "title": "GoogleMigSteadyStateStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for Google MigSteadyStateStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+[\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$)$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GoogleMigSteadyState"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleMigSteadyState"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleMigSteadyStateStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GoogleMigSteadyStateStepInfo": {
            "title": "GoogleMigSteadyStateStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "mig",
                  "instanceTemplate"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  },
                  "mig": {
                    "type": "string"
                  },
                  "instanceTemplate": {
                    "type": "string"
                  },
                  "pollingInterval": {
                    "type": "string",
                    "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$",
                    "default": "10s"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "mig": {
                "type": "string"
              },
              "instanceTemplate": {
                "type": "string"
              },
              "pollingInterval": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$",
                "default": "10s"
              },
              "description": {
                "desc": "This is the description for GoogleMigSteadyStateStepInfo"
              }
            }
          },
          "GCEProvisionBackendServiceStepNode": {
            "title": "GCEProvisionBackendServiceStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GCEProvisionBackendServiceStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GCEProvisionBackendService"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GCEProvisionBackendService"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GCEProvisionBackendServiceStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GCEProvisionBackendServiceStepInfo": {
            "title": "GCEProvisionBackendServiceStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "project",
                  "backendService"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  },
                  "project": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  },
                  "backendService": {
                    "type": "string"
                  },
                  "gcpConnectorRef": {
                    "type": "string"
                  },
                  "store": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "project": {
                "type": "string"
              },
              "region": {
                "type": "string"
              },
              "backendService": {
                "type": "string"
              },
              "gcpConnectorRef": {
                "type": "string"
              },
              "store": {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for GCEProvisionBackendServiceStepInfo"
              }
            }
          },
          "SalesforceApexTestStepNode": {
            "title": "SalesforceApexTestStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SalesforceApexTestStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SalesforceApexTest"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforceApexTest"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/SalesforceApexTestStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SalesforceApexTestStepInfo": {
            "title": "SalesforceApexTestStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "testLevel": {
                    "type": "string"
                  },
                  "testType": {
                    "type": "string"
                  },
                  "testValues": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "testLevel": {
                      "const": "RunSpecifiedTests"
                    }
                  }
                },
                "then": {
                  "required": [
                    "testType",
                    "testValues"
                  ]
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "testLevel": {
                "type": "string"
              },
              "testType": {
                "type": "string"
              },
              "testValues": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for SalesforceApexTestStepInfo"
              }
            }
          },
          "SalesforceDeployStepNode": {
            "title": "SalesforceDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SalesforceDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SalesforceDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforceDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/SalesforceDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SalesforceDeployStepInfo": {
            "title": "SalesforceDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for SalesforceDeployStepInfo"
              }
            }
          },
          "SalesforceRollbackStepNode": {
            "title": "SalesforceRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SalesforceRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SalesforceRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforceRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/SalesforceRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SalesforceRollbackStepInfo": {
            "title": "SalesforceRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for SalesforceRollbackStepInfo"
              }
            }
          },
          "SalesforceSourceBackupStepNode": {
            "title": "SalesforceSourceBackupStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SalesforceSourceBackupStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SalesforceSourceBackup"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforceSourceBackup"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/SalesforceSourceBackupStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SalesforceSourceBackupStepInfo": {
            "title": "SalesforceSourceBackupStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "gitConnectorRef": {
                    "type": "string"
                  },
                  "repoName": {
                    "type": "string"
                  },
                  "branch": {
                    "type": "string"
                  },
                  "branchAction": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "raisePR",
                          "createNewBranch",
                          "overwriteExistingBranch"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "targetBranch": {
                    "type": "string"
                  },
                  "prTitle": {
                    "type": "string"
                  },
                  "prDescription": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "gitConnectorRef": {
                "type": "string"
              },
              "repoName": {
                "type": "string"
              },
              "branch": {
                "type": "string"
              },
              "branchAction": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "raisePR",
                      "createNewBranch",
                      "overwriteExistingBranch"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "targetBranch": {
                "type": "string"
              },
              "prTitle": {
                "type": "string"
              },
              "prDescription": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for SalesforceSourceBackupStepInfo"
              }
            }
          },
          "SalesforceValidateStepNode": {
            "title": "SalesforceValidateStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SalesforceValidateStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SalesforceValidate"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforceValidate"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/SalesforceValidateStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SalesforceValidateStepInfo": {
            "title": "SalesforceValidateStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "testLevel": {
                    "type": "string"
                  },
                  "tests": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "testLevel": {
                "type": "string"
              },
              "tests": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for SalesforceValidateStepInfo"
              }
            }
          },
          "SalesforceQuickDeployStepNode": {
            "title": "SalesforceQuickDeployStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SalesforceQuickDeployStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SalesforceQuickDeploy"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforceQuickDeploy"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/SalesforceQuickDeployStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SalesforceQuickDeployStepInfo": {
            "title": "SalesforceQuickDeployStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "validatedDeployRequestId": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "validatedDeployRequestId": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for SalesforceQuickDeployStepInfo"
              }
            }
          },
          "SalesforceCreateScratchOrgStepNode": {
            "title": "SalesforceCreateScratchOrgStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SalesforceCreateScratchOrgStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SalesforceCreateScratchOrg"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforceCreateScratchOrg"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/SalesforceCreateScratchOrgStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SalesforceCreateScratchOrgStepInfo": {
            "title": "SalesforceCreateScratchOrgStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "durationDays": {
                    "type": "integer"
                  },
                  "username": {
                    "type": "string"
                  },
                  "scratchOrgName": {
                    "type": "string"
                  },
                  "definitionFilePath": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "durationDays": {
                "type": "integer"
              },
              "username": {
                "type": "string"
              },
              "scratchOrgName": {
                "type": "string"
              },
              "definitionFilePath": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for SalesforceCreateScratchOrgStepInfo"
              }
            }
          },
          "SalesforceDeleteScratchOrgStepNode": {
            "title": "SalesforceDeleteScratchOrgStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SalesforceDeleteScratchOrgStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SalesforceDeleteScratchOrg"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforceDeleteScratchOrg"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/SalesforceDeleteScratchOrgStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SalesforceDeleteScratchOrgStepInfo": {
            "title": "SalesforceDeleteScratchOrgStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "scratchOrgAuthUrl": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "scratchOrgAuthUrl": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for SalesforceDeleteScratchOrgStepInfo"
              }
            }
          },
          "SalesforceDownloadDeployablesStepNode": {
            "title": "SalesforceDownloadDeployablesStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SalesforceDownloadDeployablesStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SalesforceDownloadDeployables"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforceDownloadDeployables"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/SalesforceDownloadDeployablesStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SalesforceDownloadDeployablesStepInfo": {
            "title": "SalesforceDownloadDeployablesStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "source1Type": {
                    "type": "string"
                  },
                  "source1Ref": {
                    "type": "string"
                  },
                  "source2Type": {
                    "type": "string"
                  },
                  "source2Ref": {
                    "type": "string"
                  },
                  "metadataTypes": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "source1Type": {
                "type": "string"
              },
              "source1Ref": {
                "type": "string"
              },
              "source2Type": {
                "type": "string"
              },
              "source2Ref": {
                "type": "string"
              },
              "metadataTypes": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for SalesforceDownloadDeployablesStepInfo"
              }
            }
          },
          "SalesforceDownloadOrgStepNode": {
            "title": "SalesforceDownloadOrgStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SalesforceDownloadOrgStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SalesforceDownloadOrg"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforceDownloadOrg"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/SalesforceDownloadOrgStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SalesforceDownloadOrgStepInfo": {
            "title": "SalesforceDownloadOrgStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "sourceRef": {
                    "type": "string"
                  },
                  "downloadPath": {
                    "type": "string"
                  },
                  "metadataTypes": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "sourceRef": {
                "type": "string"
              },
              "downloadPath": {
                "type": "string"
              },
              "metadataTypes": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for SalesforceDownloadOrgStepInfo"
              }
            }
          },
          "SalesforceEvaluateDiffStepNode": {
            "title": "SalesforceEvaluateDiffStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for SalesforceEvaluateDiffStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SalesforceEvaluateDiff"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforceEvaluateDiff"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/SalesforceEvaluateDiffStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "SalesforceEvaluateDiffStepInfo": {
            "title": "SalesforceEvaluateDiffStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  },
                  "diffPath": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "commandOptions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "diffPath": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for SalesforceEvaluateDiffStepInfo"
              }
            }
          },
          "GoogleCloudRunJobStepNode": {
            "title": "GoogleCloudRunJobStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for GoogleCloudRunJobStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "GoogleCloudRunJob"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudRunJob"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunJobStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "GoogleCloudRunJobStepInfo": {
            "title": "GoogleCloudRunJobStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "replaceCommandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "executeCommandOptions": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "jobName": {
                    "type": "string"
                  },
                  "jobManifest": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  },
                  "image": {
                    "type": "string"
                  },
                  "imagePullPolicy": {
                    "oneOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Always",
                          "Never",
                          "IfNotPresent"
                        ]
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "privileged": {
                    "oneOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "runAsUser": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "preExecution": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "connectorRef": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "image": {
                "type": "string"
              },
              "imagePullPolicy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "Always",
                      "Never",
                      "IfNotPresent"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "privileged": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "runAsUser": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "preExecution": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for GoogleCloudRunJobStepInfo"
              }
            }
          },
          "HelmDeleteStepNode": {
            "title": "HelmDeleteStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "HelmDelete"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HelmDelete"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/HelmDeleteStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "HelmDeleteStepInfo": {
            "title": "HelmDeleteStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "releaseName": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "commandFlags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "dryRun": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "releaseName": {
                "type": "string"
              },
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "commandFlags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "dryRun": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldBoolean"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "environmentVariables": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ParameterFieldMapStringString"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              }
            }
          },
          "EcsBlueGreenTrafficShiftStepNode": {
            "title": "EcsBlueGreenTrafficShiftStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for EcsBlueGreenTrafficShiftStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "EcsBlueGreenTrafficShift"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "EcsBlueGreenTrafficShift"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/EcsBlueGreenTrafficShiftStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "EcsBlueGreenTrafficShiftStepInfo": {
            "title": "EcsBlueGreenTrafficShiftStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "ecsTrafficShiftWrapper"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "ecsTrafficShiftWrapper": {
                    "$ref": "#/definitions/pipeline/steps/cd/EcsTrafficShiftWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "ecsTrafficShiftWrapper"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "ecsTrafficShiftWrapper": {
                "$ref": "#/definitions/pipeline/steps/cd/EcsTrafficShiftWrapper"
              },
              "description": {
                "desc": "This is the description for EcsBlueGreenTrafficShiftStepInfo"
              }
            }
          },
          "EcsTrafficShiftWrapper": {
            "title": "EcsTrafficShiftWrapper",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Standalone",
                  "Inherit"
                ]
              },
              "description": {
                "desc": "This is the description for EcsTrafficShiftWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Standalone"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/StandAloneEcsTrafficShiftSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Inherit"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/InheritEcsTrafficShiftSpec"
                    }
                  }
                }
              }
            ]
          },
          "StandAloneEcsTrafficShiftSpec": {
            "title": "StandAloneEcsTrafficShiftSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/EcsTrafficShiftSpec"
              },
              {
                "type": "object",
                "required": [
                  "loadBalancer",
                  "listener",
                  "listenerRuleArn",
                  "forwardConfig"
                ],
                "properties": {
                  "loadBalancer": {
                    "type": "string",
                    "pattern": "^(?=\\s*\\S).*$"
                  },
                  "listener": {
                    "type": "string",
                    "pattern": "^(?=\\s*\\S).*$"
                  },
                  "listenerRuleArn": {
                    "type": "string",
                    "pattern": "^(?=\\s*\\S).*$"
                  },
                  "forwardConfig": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/ALBTargetGroupTuple"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for StandAloneEcsTrafficShiftSpec"
              }
            }
          },
          "EcsTrafficShiftSpec": {
            "title": "EcsTrafficShiftSpec",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for EcsTrafficShiftSpec"
              }
            }
          },
          "ALBTargetGroupTuple": {
            "title": "ALBTargetGroupTuple",
            "type": "object",
            "required": [
              "targetGroupArn",
              "weight"
            ],
            "properties": {
              "targetGroupArn": {
                "type": "string",
                "pattern": "^(?=\\s*\\S).*$"
              },
              "weight": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "type": "string",
                "desc": "This is the description for ALBTargetGroupTuple"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "InheritEcsTrafficShiftSpec": {
            "title": "InheritEcsTrafficShiftSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/EcsTrafficShiftSpec"
              },
              {
                "type": "object",
                "required": [
                  "weightPercentage"
                ],
                "properties": {
                  "weightPercentage": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "maximum": 100
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for InheritEcsTrafficShiftSpec"
              }
            }
          },
          "StandAloneTrafficShiftRollbackStepNode": {
            "title": "StandAloneTrafficShiftRollbackStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for StandAloneTrafficShiftRollbackStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "StandAloneTrafficShiftRollback"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "StandAloneTrafficShiftRollback"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/StandAloneTrafficShiftRollbackStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "StandAloneTrafficShiftRollbackStepInfo": {
            "title": "StandAloneTrafficShiftRollbackStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for StandAloneTrafficShiftRollbackStepInfo"
              }
            }
          },
          "ElastigroupBlueGreenTrafficShiftStepNode": {
            "title": "ElastigroupBlueGreenTrafficShiftStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ElastigroupBlueGreenTrafficShiftStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ElastigroupBlueGreenTrafficShift"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ElastigroupBlueGreenTrafficShift"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/ElastigroupBlueGreenTrafficShiftStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ElastigroupBlueGreenTrafficShiftStepInfo": {
            "title": "ElastigroupBlueGreenTrafficShiftStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "elastigroupTrafficShiftWrapper"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "elastigroupTrafficShiftWrapper": {
                    "$ref": "#/definitions/pipeline/steps/cd/ElastigroupTrafficShiftWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "elastigroupTrafficShiftWrapper"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "elastigroupTrafficShiftWrapper": {
                "$ref": "#/definitions/pipeline/steps/cd/ElastigroupTrafficShiftWrapper"
              },
              "description": {
                "desc": "This is the description for ElastigroupBlueGreenTrafficShiftStepInfo"
              }
            }
          },
          "ElastigroupTrafficShiftWrapper": {
            "title": "ElastigroupTrafficShiftWrapper",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Standalone",
                  "Inherit"
                ]
              },
              "description": {
                "desc": "This is the description for ElastigroupTrafficShiftWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Standalone"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/StandAloneElastigroupTrafficShiftSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Inherit"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/InheritElastigroupTrafficShiftSpec"
                    }
                  }
                }
              }
            ]
          },
          "StandAloneElastigroupTrafficShiftSpec": {
            "title": "StandAloneElastigroupTrafficShiftSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ElastigroupTrafficShiftSpec"
              },
              {
                "type": "object",
                "required": [
                  "loadBalancer",
                  "listenerArn",
                  "listenerRuleArn",
                  "forwardTrafficConfig"
                ],
                "properties": {
                  "loadBalancer": {
                    "type": "string",
                    "pattern": "^(?=\\s*\\S).*$"
                  },
                  "listenerArn": {
                    "type": "string",
                    "pattern": "^(?=\\s*\\S).*$"
                  },
                  "listenerRuleArn": {
                    "type": "string",
                    "pattern": "^(?=\\s*\\S).*$"
                  },
                  "forwardTrafficConfig": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/steps/cd/ALBTargetGroupTuple"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for StandAloneElastigroupTrafficShiftSpec"
              }
            }
          },
          "ElastigroupTrafficShiftSpec": {
            "title": "ElastigroupTrafficShiftSpec",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ElastigroupTrafficShiftSpec"
              }
            }
          },
          "InheritElastigroupTrafficShiftSpec": {
            "title": "InheritElastigroupTrafficShiftSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cd/ElastigroupTrafficShiftSpec"
              },
              {
                "type": "object",
                "required": [
                  "weightPercentage"
                ],
                "properties": {
                  "weightPercentage": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "maximum": 100
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for InheritElastigroupTrafficShiftSpec"
              }
            }
          }
        },
        "resiliencetesting": {
          "ChaosStepNode": {
            "title": "ChaosStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ChaosStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Chaos"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Chaos"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "ChaosStepInfo": {
            "title": "ChaosStepInfo",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "identifier": {
                      "type": "string"
                    },
                    "kind": {
                      "const": "template"
                    }
                  },
                  "required": [
                    "identifier",
                    "kind"
                  ]
                },
                "then": {
                  "required": [
                    "hubRef",
                    "infraReference"
                  ]
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "expectedResilienceScore"
            ],
            "properties": {
              "assertion": {
                "type": "string"
              },
              "expectedResilienceScore": {
                "oneOf": [
                  {
                    "type": "number",
                    "format": "double"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "experimentRef": {
                "type": "string",
                "minLength": 1
              },
              "identifier": {
                "type": "string",
                "minLength": 1
              },
              "kind": {
                "type": "string",
                "enum": [
                  "experiment",
                  "template"
                ]
              },
              "hubRef": {
                "type": "string",
                "minLength": 1
              },
              "infraReference": {
                "oneOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "not": {
                      "pattern": "(<\\+.+>.*)"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "tasks": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "identifier"
                      ],
                      "properties": {
                        "identifier": {
                          "type": "string",
                          "minLength": 1
                        },
                        "values": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "value"
                            ],
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1
                              },
                              "value": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "string",
                                    "pattern": "(<\\+.+>.*)"
                                  }
                                ]
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for ChaosStepInfo"
              }
            },
            "anyOf": [
              {
                "required": [
                  "experimentRef"
                ]
              },
              {
                "required": [
                  "identifier"
                ]
              }
            ]
          },
          "LoadTestStepNode": {
            "title": "LoadTestStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for LoadTestStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "LoadTest"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "LoadTest"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/resiliencetesting/LoadTestStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "LoadTestStepInfo": {
            "title": "LoadTestStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "loadTestRef"
                ],
                "properties": {
                  "loadTestRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "targetUsers": {
                    "oneOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "rampUpTimeSec": {
                    "oneOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  },
                  "durationSeconds": {
                    "oneOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "$ref": "#/definitions/pipeline/steps/common/common-jexl"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ChaosProbeNode": {
            "title": "ChaosProbeNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ChaosProbeNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ChaosProbe"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ChaosProbe"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosProbeInfo"
                    }
                  }
                }
              }
            ]
          },
          "ChaosProbeInfo": {
            "title": "ChaosProbeInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "identity",
                  "duration",
                  "infraReference"
                ],
                "properties": {
                  "identity": {
                    "type": "string"
                  },
                  "duration": {
                    "type": "string"
                  },
                  "infraReference": {
                    "type": "string"
                  },
                  "tasks": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "identifier"
                          ],
                          "properties": {
                            "identifier": {
                              "type": "string",
                              "minLength": 1
                            },
                            "values": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "required": [
                                  "name",
                                  "value"
                                ],
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "value": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string",
                                        "pattern": "(<\\+.+>.*)"
                                      }
                                    ]
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ChaosActionNode": {
            "title": "ChaosActionNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ChaosActionNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ChaosAction"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ChaosAction"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosActionInfo"
                    }
                  }
                }
              }
            ]
          },
          "ChaosActionInfo": {
            "title": "ChaosActionInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "identity",
                  "duration",
                  "infraReference"
                ],
                "properties": {
                  "identity": {
                    "type": "string"
                  },
                  "duration": {
                    "type": "string"
                  },
                  "infraReference": {
                    "type": "string"
                  },
                  "tasks": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "identifier"
                          ],
                          "properties": {
                            "identifier": {
                              "type": "string",
                              "minLength": 1
                            },
                            "values": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "required": [
                                  "name",
                                  "value"
                                ],
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "value": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string",
                                        "pattern": "(<\\+.+>.*)"
                                      }
                                    ]
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ChaosFaultNode": {
            "title": "ChaosFaultNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ChaosFaultNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ChaosFault"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ChaosFault"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosFaultInfo"
                    }
                  }
                }
              }
            ]
          },
          "ChaosFaultInfo": {
            "title": "ChaosFaultInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "identity",
                  "infraReference"
                ],
                "properties": {
                  "identity": {
                    "type": "string"
                  },
                  "infraReference": {
                    "type": "string"
                  },
                  "tasks": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "identifier"
                          ],
                          "properties": {
                            "identifier": {
                              "type": "string",
                              "minLength": 1
                            },
                            "values": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "required": [
                                  "name",
                                  "value"
                                ],
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "value": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "string",
                                        "pattern": "(<\\+.+>.*)"
                                      }
                                    ]
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          }
        },
        "cvng": {
          "CVVerifyStepNode": {
            "title": "CVVerifyStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for CVVerifyStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Verify"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Verify"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cvng/CVNGStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "CVNGStepInfo": {
            "title": "CVNGStepInfo",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "configurableProperties": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/cvng/VerifyConfigurableProperty"
                    }
                  }
                ]
              },
              "monitoredService": {
                "$ref": "#/definitions/pipeline/steps/cvng/MonitoredServiceNode"
              },
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for CVNGStepInfo"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Auto"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cvng/AutoVerificationJobSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Bluegreen"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cvng/BlueGreenVerificationJobSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Canary"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cvng/CanaryVerificationJobSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "LoadTest"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cvng/TestVerificationJobSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Rolling"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cvng/ImprovisedCanaryVerificationJobSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SimpleVerification"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cvng/SimpleVerificationJobSpec"
                    }
                  }
                }
              }
            ]
          },
          "VerifyConfigurableProperty": {
            "title": "VerifyConfigurableProperty",
            "type": "object",
            "required": [
              "name",
              "type",
              "value"
            ],
            "properties": {
              "name": {
                "type": "string",
                "enum": [
                  "deploymentStartTime",
                  "dataCollectionDuration"
                ]
              },
              "type": {
                "type": "string"
              },
              "value": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for VerifyConfigurableProperty"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "MonitoredServiceNode": {
            "title": "MonitoredServiceNode",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for MonitoredServiceNode"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Default"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cvng/DefaultMonitoredServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Template"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cvng/TemplateMonitoredServiceSpec"
                    }
                  }
                }
              }
            ]
          },
          "DefaultMonitoredServiceSpec": {
            "title": "DefaultMonitoredServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cvng/MonitoredServiceSpec"
              },
              {
                "type": "object",
                "properties": {}
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for DefaultMonitoredServiceSpec"
              }
            }
          },
          "MonitoredServiceSpec": {
            "title": "MonitoredServiceSpec",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for MonitoredServiceSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TemplateMonitoredServiceSpec": {
            "title": "TemplateMonitoredServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cvng/MonitoredServiceSpec"
              },
              {
                "type": "object",
                "required": [
                  "monitoredServiceTemplateRef",
                  "templateInputs",
                  "versionLabel"
                ],
                "properties": {
                  "monitoredServiceTemplateRef": {
                    "type": "string"
                  },
                  "templateInputs": {
                    "$ref": "#/definitions/pipeline/common/JsonNode"
                  },
                  "versionLabel": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TemplateMonitoredServiceSpec"
              }
            }
          },
          "AutoVerificationJobSpec": {
            "title": "AutoVerificationJobSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cvng/VerificationJobSpec"
              },
              {
                "type": "object",
                "properties": {
                  "trafficSplitPercentage": {
                    "type": "string",
                    "description": "Example: 50, You can put max upto 50."
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AutoVerificationJobSpec"
              }
            }
          },
          "VerificationJobSpec": {
            "title": "VerificationJobSpec",
            "type": "object",
            "required": [
              "duration"
            ],
            "discriminator": "type",
            "properties": {
              "deploymentTag": {
                "type": "string",
                "description": "You can put expression <+serviceConfig.artifacts.primary.tag> to resolve primary tag"
              },
              "duration": {
                "type": "string",
                "description": "Format example: 5m, 30m, please put multiple of 5"
              },
              "sensitivity": {
                "type": "string",
                "description": "Possible values: [Low, Medium, High]"
              },
              "supportedDataTypesForVerification": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "TIME_SERIES",
                    "LOG"
                  ]
                }
              },
              "description": {
                "desc": "This is the description for VerificationJobSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "BlueGreenVerificationJobSpec": {
            "title": "BlueGreenVerificationJobSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cvng/VerificationJobSpec"
              },
              {
                "type": "object",
                "properties": {
                  "trafficSplitPercentage": {
                    "type": "string",
                    "description": "Example: 50, You can put max upto 50."
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for BlueGreenVerificationJobSpec"
              }
            }
          },
          "CanaryVerificationJobSpec": {
            "title": "CanaryVerificationJobSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cvng/VerificationJobSpec"
              },
              {
                "type": "object",
                "properties": {
                  "trafficSplitPercentage": {
                    "type": "string",
                    "description": "Example: 50, You can put max upto 50."
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CanaryVerificationJobSpec"
              }
            }
          },
          "TestVerificationJobSpec": {
            "title": "TestVerificationJobSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cvng/VerificationJobSpec"
              },
              {
                "type": "object",
                "properties": {
                  "baseline": {
                    "type": "string",
                    "description": "Possible values: [LAST, PINNED]"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TestVerificationJobSpec"
              }
            }
          },
          "ImprovisedCanaryVerificationJobSpec": {
            "title": "ImprovisedCanaryVerificationJobSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cvng/VerificationJobSpec"
              },
              {
                "type": "object",
                "properties": {
                  "trafficSplitPercentage": {
                    "type": "string",
                    "description": "Example: 50, You can put max upto 50."
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ImprovisedCanaryVerificationJobSpec"
              }
            }
          },
          "SimpleVerificationJobSpec": {
            "title": "SimpleVerificationJobSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cvng/VerificationJobSpec"
              },
              {
                "type": "object",
                "properties": {}
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for SimpleVerificationJobSpec"
              }
            }
          },
          "CVAnalyzeDeploymentStepNode": {
            "title": "CVAnalyzeDeploymentStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for CVAnalyzeDeploymentStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "AnalyzeDeploymentImpact"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AnalyzeDeploymentImpact"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cvng/CVNGDeploymentStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "CVNGDeploymentStepInfo": {
            "title": "CVNGDeploymentStepInfo",
            "type": "object",
            "required": [
              "duration"
            ],
            "properties": {
              "duration": {
                "type": "string",
                "description": "Format example: 12H, 1D, please put either Hours or days"
              },
              "monitoredService": {
                "$ref": "#/definitions/pipeline/steps/cvng/DefaultAndConfiguredMonitoredServiceNode"
              },
              "description": {
                "desc": "This is the description for CVNGDeploymentStepInfo"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "DefaultAndConfiguredMonitoredServiceNode": {
            "title": "DefaultAndConfiguredMonitoredServiceNode",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "spec": {
                "$ref": "#/definitions/pipeline/steps/cvng/DefaultAndConfiguredMonitoredServiceSpec"
              },
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for DefaultAndConfiguredMonitoredServiceNode"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Default"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cvng/DefaultMonitoredServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Configured"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cvng/ConfiguredMonitoredServiceSpec"
                    }
                  }
                }
              }
            ]
          },
          "DefaultAndConfiguredMonitoredServiceSpec": {
            "title": "DefaultAndConfiguredMonitoredServiceSpec",
            "type": "object",
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for DefaultAndConfiguredMonitoredServiceSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ConfiguredMonitoredServiceSpec": {
            "title": "ConfiguredMonitoredServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/cvng/MonitoredServiceSpec"
              },
              {
                "type": "object",
                "required": [
                  "monitoredServiceRef"
                ],
                "properties": {
                  "monitoredServiceRef": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ConfiguredMonitoredServiceSpec"
              }
            }
          }
        },
        "idp": {
          "IDPSlackNotifyStepNode": {
            "title": "IDPSlackNotifyStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IDPSlackNotifyStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SlackNotify"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SlackNotify"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/idp/IDPSlackNotifyPlanInfo"
                    }
                  }
                }
              }
            ]
          },
          "IDPSlackNotifyPlanInfo": {
            "title": "IDPSlackNotifyPlanInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "token"
                ],
                "properties": {
                  "email": {
                    "type": "string"
                  },
                  "messageContent": {
                    "type": "string"
                  },
                  "token": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "channel": {
                    "type": "string"
                  },
                  "botUsername": {
                    "type": "string"
                  },
                  "botIconUrl": {
                    "type": "string"
                  },
                  "threadTs": {
                    "type": "string"
                  },
                  "replyBroadcast": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "boolean"
                      }
                    ]
                  },
                  "blocks": {
                    "type": "string"
                  }
                },
                "oneOf": [
                  {
                    "allOf": [
                      {
                        "oneOf": [
                          {
                            "required": [
                              "email"
                            ]
                          },
                          {
                            "required": [
                              "channel"
                            ]
                          }
                        ]
                      },
                      {
                        "oneOf": [
                          {
                            "required": [
                              "messageContent"
                            ]
                          },
                          {
                            "required": [
                              "blocks"
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "token"
            ],
            "properties": {
              "email": {
                "type": "string"
              },
              "messageContent": {
                "type": "string"
              },
              "token": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "channel": {
                "type": "string"
              },
              "botUsername": {
                "type": "string"
              },
              "botIconUrl": {
                "type": "string"
              },
              "threadTs": {
                "type": "string"
              },
              "replyBroadcast": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "boolean"
                  }
                ]
              },
              "blocks": {
                "type": "string"
              }
            },
            "oneOf": [
              {
                "allOf": [
                  {
                    "oneOf": [
                      {
                        "required": [
                          "email"
                        ]
                      },
                      {
                        "required": [
                          "channel"
                        ]
                      }
                    ]
                  },
                  {
                    "oneOf": [
                      {
                        "required": [
                          "messageContent"
                        ]
                      },
                      {
                        "required": [
                          "blocks"
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          },
          "IDPCookieCutterStepNode": {
            "title": "IDPCookieCutterStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IDPCookieCutterStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CookieCutter"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CookieCutter"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/idp/IDPCookieCutterPlanInfo"
                    }
                  }
                }
              }
            ]
          },
          "IDPCookieCutterPlanInfo": {
            "title": "IDPCookieCutterPlanInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "templateType",
                  "cookieCutterVariables"
                ],
                "properties": {
                  "templateType": {
                    "type": "string"
                  },
                  "publicTemplateUrl": {
                    "type": "string"
                  },
                  "pathForTemplate": {
                    "type": "string"
                  },
                  "outputDirectory": {
                    "type": "string"
                  },
                  "verbose": {
                    "type": "boolean"
                  },
                  "overwriteIfExists": {
                    "type": "boolean"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  },
                  "cookieCutterVariables": {
                    "oneOf": [
                      {
                        "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "templateType",
              "cookieCutterVariables"
            ],
            "properties": {
              "templateType": {
                "type": "string"
              },
              "publicTemplateUrl": {
                "type": "string"
              },
              "pathForTemplate": {
                "type": "string"
              },
              "outputDirectory": {
                "type": "string"
              },
              "verbose": {
                "type": "boolean"
              },
              "overwriteIfExists": {
                "type": "boolean"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              },
              "cookieCutterVariables": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/ParameterFieldMapStringJsonNode"
                  },
                  {
                    "type": "string"
                  }
                ]
              }
            }
          },
          "IDPCreateRepoStepNode": {
            "title": "IDPCreateRepoStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IDPCreateRepoStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CreateRepo"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CreateRepo"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/idp/IDPCreateRepoPlanInfo"
                    }
                  }
                }
              }
            ]
          },
          "IDPCreateRepoPlanInfo": {
            "title": "IDPCreateRepoPlanInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "repoType"
                ],
                "properties": {
                  "repoType": {
                    "type": "string"
                  },
                  "repository": {
                    "type": "string"
                  },
                  "organization": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "defaultBranch": {
                    "type": "string"
                  },
                  "workspace": {
                    "type": "string"
                  },
                  "project": {
                    "type": "string"
                  },
                  "connectorType": {
                    "type": "string"
                  },
                  "personalAccount": {
                    "type": "boolean"
                  },
                  "harnessCodeRepoType": {
                    "type": "string"
                  },
                  "xApiKey": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "repoType"
            ],
            "properties": {
              "repoType": {
                "type": "string"
              },
              "repository": {
                "type": "string"
              },
              "organization": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "defaultBranch": {
                "type": "string"
              },
              "workspace": {
                "type": "string"
              },
              "project": {
                "type": "string"
              },
              "connectorType": {
                "type": "string"
              },
              "personalAccount": {
                "type": "boolean"
              },
              "harnessCodeRepoType": {
                "type": "string"
              },
              "xApiKey": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              }
            }
          },
          "IDPRegisterCatalogStepNode": {
            "title": "IDPRegisterCatalogStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IDPRegisterCatalogStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "RegisterCatalog"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "RegisterCatalog"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/idp/IDPRegisterCatalogPlanInfo"
                    }
                  }
                }
              }
            ]
          },
          "IDPRegisterCatalogPlanInfo": {
            "title": "IDPRegisterCatalogPlanInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "filePath"
                ],
                "properties": {
                  "repository": {
                    "type": "string"
                  },
                  "organization": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "branch": {
                    "type": "string"
                  },
                  "workspace": {
                    "type": "string"
                  },
                  "project": {
                    "type": "string"
                  },
                  "filePath": {
                    "type": "string"
                  },
                  "connectorType": {
                    "type": "string"
                  },
                  "harnessCodeRepoType": {
                    "type": "string"
                  },
                  "xApiKey": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "filePath"
            ],
            "properties": {
              "repository": {
                "type": "string"
              },
              "organization": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "branch": {
                "type": "string"
              },
              "workspace": {
                "type": "string"
              },
              "project": {
                "type": "string"
              },
              "filePath": {
                "type": "string"
              },
              "connectorType": {
                "type": "string"
              },
              "harnessCodeRepoType": {
                "type": "string"
              },
              "xApiKey": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              }
            }
          },
          "IDPDirectPushStepNode": {
            "title": "IDPDirectPushStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IDPDirectPushStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DirectPush"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DirectPush"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/idp/IDPDirectPushPlanInfo"
                    }
                  }
                }
              }
            ]
          },
          "IDPDirectPushPlanInfo": {
            "title": "IDPDirectPushPlanInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "codeDirectory",
                  "branch"
                ],
                "properties": {
                  "codeDirectory": {
                    "type": "string"
                  },
                  "branch": {
                    "type": "string"
                  },
                  "organization": {
                    "type": "string"
                  },
                  "repository": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "workspace": {
                    "type": "string"
                  },
                  "project": {
                    "type": "string"
                  },
                  "codeOutputDirectory": {
                    "type": "string"
                  },
                  "connectorType": {
                    "type": "string"
                  },
                  "forcePush": {
                    "type": "boolean"
                  },
                  "harnessCodeRepoType": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "codeDirectory",
              "branch"
            ],
            "properties": {
              "codeDirectory": {
                "type": "string"
              },
              "branch": {
                "type": "string"
              },
              "organization": {
                "type": "string"
              },
              "repository": {
                "type": "string"
              },
              "connectorRef": {
                "type": "string"
              },
              "workspace": {
                "type": "string"
              },
              "project": {
                "type": "string"
              },
              "codeOutputDirectory": {
                "type": "string"
              },
              "connectorType": {
                "type": "string"
              },
              "forcePush": {
                "type": "boolean"
              },
              "harnessCodeRepoType": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              }
            }
          },
          "IDPCreateCatalogStepNode": {
            "title": "IDPCreateCatalogStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IDPCreateCatalogStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CreateCatalog"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CreateCatalog"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/idp/IDPCreateCatalogPlanInfo"
                    }
                  }
                }
              }
            ]
          },
          "IDPCreateCatalogPlanInfo": {
            "title": "IDPCreateCatalogPlanInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "fileName",
                  "fileContent"
                ],
                "properties": {
                  "fileName": {
                    "type": "string"
                  },
                  "filePath": {
                    "type": "string"
                  },
                  "fileContent": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "fileName",
              "fileContent"
            ],
            "properties": {
              "fileName": {
                "type": "string"
              },
              "filePath": {
                "type": "string"
              },
              "fileContent": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              }
            }
          },
          "IDPCreateOrganisationStepNode": {
            "title": "IDPCreateOrganisationStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IDPCreateOrganisationStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CreateOrganization"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CreateOrganization"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/idp/IDPCreateOrganisationPlanInfo"
                    }
                  }
                }
              }
            ]
          },
          "IDPCreateOrganisationPlanInfo": {
            "title": "IDPCreateOrganisationPlanInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "orgName",
                  "xApiKey"
                ],
                "properties": {
                  "orgName": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "tags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "xApiKey": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "orgName",
              "xApiKey"
            ],
            "properties": {
              "orgName": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "tags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "xApiKey": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              }
            }
          },
          "IDPCreateProjectStepNode": {
            "title": "IDPCreateProjectStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IDPCreateProjectStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CreateProject"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CreateProject"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/idp/IDPCreateProjectPlanInfo"
                    }
                  }
                }
              }
            ]
          },
          "IDPCreateProjectPlanInfo": {
            "title": "IDPCreateProjectPlanInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "projectName",
                  "orgIdentifier",
                  "xApiKey"
                ],
                "properties": {
                  "projectName": {
                    "type": "string"
                  },
                  "orgIdentifier": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "tags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  },
                  "xApiKey": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "projectName",
              "orgIdentifier",
              "xApiKey"
            ],
            "properties": {
              "projectName": {
                "type": "string"
              },
              "orgIdentifier": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "tags": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "xApiKey": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              }
            }
          },
          "IDPCreateResourceStepNode": {
            "title": "IDPCreateResourceStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IDPCreateResourceStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "CreateResource"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CreateResource"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/idp/IDPCreateResourcePlanInfo"
                    }
                  }
                }
              }
            ]
          },
          "IDPCreateResourcePlanInfo": {
            "title": "IDPCreateResourcePlanInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "resourceDefinition",
                  "xApiKey"
                ],
                "properties": {
                  "resourceDefinition": {
                    "type": "string"
                  },
                  "xApiKey": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "resourceDefinition",
              "xApiKey"
            ],
            "properties": {
              "resourceDefinition": {
                "type": "string"
              },
              "xApiKey": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              }
            }
          },
          "IDPUpdateCatalogPropertyStepNode": {
            "title": "IDPUpdateCatalogPropertyStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for IDPUpdateCatalogPropertyStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "UpdateCatalogProperty"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "UpdateCatalogProperty"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/idp/IDPUpdateCatalogPropertyStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "IDPUpdateCatalogPropertyStepInfo": {
            "title": "IDPUpdateCatalogPropertyStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "required": [
                  "type"
                ],
                "properties": {
                  "type": {
                    "type": "string"
                  },
                  "entityRef": {
                    "type": "string"
                  },
                  "properties": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/idp/PropertiesParameterField"
                    }
                  },
                  "property": {
                    "type": "string"
                  },
                  "entityRefs": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/idp/EntityRefsParameterField"
                    }
                  },
                  "mode": {
                    "type": "string"
                  },
                  "value": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "object"
                      },
                      {
                        "type": "array"
                      }
                    ]
                  },
                  "xApiKey": {
                    "type": "string"
                  },
                  "resources": {
                    "$ref": "#/definitions/pipeline/common/ContainerResource"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "entityRef": {
                "type": "string"
              },
              "properties": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/idp/PropertiesParameterField"
                }
              },
              "property": {
                "type": "string"
              },
              "entityRefs": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/idp/EntityRefsParameterField"
                }
              },
              "mode": {
                "type": "string"
              },
              "value": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "object"
                  },
                  {
                    "type": "array"
                  }
                ]
              },
              "xApiKey": {
                "type": "string"
              },
              "resources": {
                "$ref": "#/definitions/pipeline/common/ContainerResource"
              }
            }
          },
          "PropertiesParameterField": {
            "title": "PropertiesParameterField",
            "type": "object",
            "required": [
              "property",
              "value"
            ],
            "properties": {
              "property": {
                "type": "string"
              },
              "value": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "object"
                  },
                  {
                    "type": "array"
                  }
                ]
              },
              "mode": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for PropertiesParameterField"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "EntityRefsParameterField": {
            "title": "EntityRefsParameterField",
            "type": "object",
            "required": [
              "entityRef"
            ],
            "properties": {
              "entityRef": {
                "type": "string"
              },
              "value": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "object"
                  },
                  {
                    "type": "array"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for EntityRefsParameterField"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          }
        },
        "drtest": {
          "DRTestSlackNotifyStepNode": {
            "title": "DRTestSlackNotifyStepNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "spec",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for DRTestSlackNotifyStepNode"
              },
              "enforce": {
                "$ref": "#/definitions/pipeline/common/PolicyConfig"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "SlackNotify"
                ]
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SlackNotify"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/drtest/DRTestSlackNotifyStepInfo"
                    }
                  }
                }
              }
            ]
          },
          "DRTestSlackNotifyStepInfo": {
            "title": "DRTestSlackNotifyStepInfo",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/StepSpecType"
              },
              {
                "type": "object",
                "properties": {
                  "message": {
                    "type": "string"
                  },
                  "channel": {
                    "type": "string"
                  },
                  "webhookUrl": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#"
          }
        }
      },
      "common": {
        "JsonNode": {
          "title": "JsonNode",
          "type": "object",
          "$schema": "http://json-schema.org/draft-07/schema#",
          "properties": {
            "description": {
              "desc": "This is the description for JsonNode"
            }
          }
        },
        "FailureStrategyConfig": {
          "title": "FailureStrategyConfig",
          "type": "object",
          "required": [
            "onFailure"
          ],
          "properties": {
            "onFailure": {
              "$ref": "#/definitions/pipeline/common/OnFailureConfig"
            },
            "description": {
              "desc": "This is the description for FailureStrategyConfig"
            }
          },
          "metadata": {
            "inputProperties": {
              "type": "string",
              "internalType": "failure_strategy"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "OnFailureConfig": {
          "title": "OnFailureConfig",
          "type": "object",
          "required": [
            "action",
            "errors"
          ],
          "properties": {
            "action": {
              "$ref": "#/definitions/pipeline/common/FailureStrategyActionConfig"
            },
            "errors": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "Unknown",
                  "AllErrors",
                  "Authentication",
                  "Connectivity",
                  "Timeout",
                  "Authorization",
                  "Verification",
                  "DelegateProvisioning",
                  "PolicyEvaluationFailure",
                  "InputTimeoutError",
                  "ApprovalRejection",
                  "DelegateRestart",
                  "UserMarkedFailure",
                  "InfrastructureFailure",
                  "PluginImageFailure",
                  "ResourceLimitsFailure",
                  "ConfigurationFailure",
                  "RetryableTransientFailure"
                ]
              }
            },
            "description": {
              "desc": "This is the description for OnFailureConfig"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "FailureStrategyActionConfig": {
          "title": "FailureStrategyActionConfig",
          "type": "object",
          "required": [
            "type"
          ],
          "properties": {
            "description": {
              "desc": "This is the description for FailureStrategyActionConfig"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#",
          "allOf": [
            {
              "if": {
                "properties": {
                  "type": {
                    "const": "Ignore"
                  }
                }
              },
              "then": {
                "$ref": "#/definitions/pipeline/common/IgnoreFailureActionConfig"
              }
            },
            {
              "if": {
                "properties": {
                  "type": {
                    "const": "Retry"
                  }
                }
              },
              "then": {
                "$ref": "#/definitions/pipeline/common/RetryFailureActionConfig"
              }
            },
            {
              "if": {
                "properties": {
                  "type": {
                    "const": "MarkAsSuccess"
                  }
                }
              },
              "then": {
                "$ref": "#/definitions/pipeline/common/MarkAsSuccessFailureActionConfig"
              }
            },
            {
              "if": {
                "properties": {
                  "type": {
                    "const": "Abort"
                  }
                }
              },
              "then": {
                "$ref": "#/definitions/pipeline/common/AbortFailureActionConfig"
              }
            },
            {
              "if": {
                "properties": {
                  "type": {
                    "const": "StageRollback"
                  }
                }
              },
              "then": {
                "$ref": "#/definitions/pipeline/common/StageRollbackFailureActionConfig"
              }
            },
            {
              "if": {
                "properties": {
                  "type": {
                    "const": "StepGroupRollback"
                  }
                }
              },
              "then": {
                "$ref": "#/definitions/pipeline/common/StepGroupRollbackFailureActionConfig"
              }
            },
            {
              "if": {
                "properties": {
                  "type": {
                    "const": "PipelineRollback"
                  }
                }
              },
              "then": {
                "$ref": "#/definitions/pipeline/common/PipelineRollbackFailureActionConfig"
              }
            },
            {
              "if": {
                "properties": {
                  "type": {
                    "const": "ManualIntervention"
                  }
                }
              },
              "then": {
                "$ref": "#/definitions/pipeline/common/ManualInterventionFailureActionConfig"
              }
            },
            {
              "if": {
                "properties": {
                  "type": {
                    "const": "ProceedWithDefaultValues"
                  }
                }
              },
              "then": {
                "$ref": "#/definitions/pipeline/common/ProceedWithDefaultValuesFailureActionConfig"
              }
            },
            {
              "if": {
                "properties": {
                  "type": {
                    "const": "MarkAsFailure"
                  }
                }
              },
              "then": {
                "$ref": "#/definitions/pipeline/common/MarkAsFailureActionConfig"
              }
            },
            {
              "if": {
                "properties": {
                  "type": {
                    "const": "RetryStepGroup"
                  }
                }
              },
              "then": {
                "$ref": "#/definitions/pipeline/common/RetryStepGroupFailureActionConfig"
              }
            }
          ]
        },
        "IgnoreFailureActionConfig": {
          "title": "IgnoreFailureActionConfig",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "Ignore"
              ]
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "RetryFailureActionConfig": {
          "title": "RetryFailureActionConfig",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "Retry"
              ]
            },
            "spec": {
              "$ref": "#/definitions/pipeline/common/RetryFailureSpecConfig"
            },
            "description": {
              "desc": "This is the description for RetryFailureActionConfig"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "RetryFailureSpecConfig": {
          "title": "RetryFailureSpecConfig",
          "type": "object",
          "properties": {
            "condition": {
              "description": "Expression that evaluates to determine if retry should be performed, e.g. '<+step.exitCode> == 137'"
            },
            "retryCount": {
              "description": "Number of retries to attempt"
            },
            "retryIntervals": {
              "description": "List of interval durations between retries"
            },
            "onRetryFailure": {
              "properties": {
                "action": {
                  "description": "Action to take. Recommended types: Abort, Ignore, MarkAsSuccess, MarkAsFailure"
                }
              }
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "MarkAsSuccessFailureActionConfig": {
          "title": "MarkAsSuccessFailureActionConfig",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "MarkAsSuccess"
              ]
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "AbortFailureActionConfig": {
          "title": "AbortFailureActionConfig",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "Abort"
              ]
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "StageRollbackFailureActionConfig": {
          "title": "StageRollbackFailureActionConfig",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "StageRollback"
              ]
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "StepGroupRollbackFailureActionConfig": {
          "title": "StepGroupRollbackFailureActionConfig",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "StepGroupRollback"
              ]
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "PipelineRollbackFailureActionConfig": {
          "title": "PipelineRollbackFailureActionConfig",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "PipelineRollback"
              ]
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "ManualInterventionFailureActionConfig": {
          "title": "ManualInterventionFailureActionConfig",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "ManualIntervention"
              ]
            },
            "spec": {
              "type": "object",
              "required": [
                "timeout"
              ],
              "properties": {
                "timeout": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^[1-9]\\d*[smhdw](\\s+[1-9]\\d*[smhdw])*$",
                  "description": "Duration string e.g. '10s', '30m', '2h'"
                },
                "onTimeout": {
                  "properties": {
                    "action": {
                      "description": "Action to take. Recommended types: Abort, Ignore, MarkAsSuccess, MarkAsFailure"
                    }
                  }
                }
              }
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "ProceedWithDefaultValuesFailureActionConfig": {
          "title": "ProceedWithDefaultValuesFailureActionConfig",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "ProceedWithDefaultValues"
              ]
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "MarkAsFailureActionConfig": {
          "title": "MarkAsFailureActionConfig",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "MarkAsFailure"
              ]
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "RetryStepGroupFailureActionConfig": {
          "title": "RetryStepGroupFailureActionConfig",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "RetryStepGroup"
              ]
            },
            "spec": {
              "properties": {
                "retryCount": {
                  "description": "Number of retries to attempt"
                },
                "retryIntervals": {
                  "description": "List of interval durations between retries"
                }
              }
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "StrategyConfig": {
          "title": "StrategyConfig",
          "type": "object",
          "properties": {
            "when": {
              "type": "string",
              "pattern": "^(?!<\\+input>.*\\.executionInput\\(\\)(.*)$)"
            },
            "matrix": {
              "oneOf": [
                {
                  "$ref": "#/definitions/pipeline/common/ParameterFieldMatrixConfigInterface"
                },
                {
                  "type": "string",
                  "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                  "minLength": 1
                }
              ]
            },
            "parallelism": {
              "oneOf": [
                {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 0
                },
                {
                  "type": "string",
                  "pattern": "(<\\+.+>.*)",
                  "minLength": 1
                }
              ]
            },
            "repeat": {
              "$ref": "#/definitions/pipeline/common/HarnessForConfig"
            },
            "onFailure": {
              "$ref": "#/definitions/pipeline/common/StrategyOnFailureType"
            },
            "description": {
              "desc": "This is the description for StrategyConfig"
            }
          },
          "metadata": {
            "inputProperties": {
              "type": "object",
              "internalType": "strategy_config"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#",
          "allOf": [
            {
              "oneOf": [
                {
                  "required": [
                    "repeat"
                  ]
                },
                {
                  "required": [
                    "parallelism"
                  ]
                },
                {
                  "required": [
                    "matrix"
                  ]
                }
              ]
            }
          ]
        },
        "ParameterFieldMatrixConfigInterface": {
          "title": "ParameterFieldMatrixConfigInterface",
          "type": "object",
          "properties": {
            "defaultValue": {
              "$ref": "#/definitions/pipeline/common/MatrixConfigInterface"
            },
            "executionInput": {
              "type": "boolean"
            },
            "expression": {
              "type": "boolean"
            },
            "expressionValue": {
              "type": "string"
            },
            "inputSetValidator": {
              "$ref": "#/definitions/pipeline/common/InputSetValidator"
            },
            "jsonResponseField": {
              "type": "boolean"
            },
            "responseField": {
              "type": "string"
            },
            "typeString": {
              "type": "boolean"
            },
            "value": {
              "$ref": "#/definitions/pipeline/common/MatrixConfigInterface"
            },
            "description": {
              "desc": "This is the description for ParameterFieldMatrixConfigInterface"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "MatrixConfigInterface": {
          "title": "MatrixConfigInterface",
          "type": "object",
          "$schema": "http://json-schema.org/draft-07/schema#",
          "properties": {
            "description": {
              "desc": "This is the description for MatrixConfigInterface"
            }
          }
        },
        "InputSetValidator": {
          "title": "InputSetValidator",
          "type": "object",
          "properties": {
            "parameters": {
              "type": "string"
            },
            "validatorType": {
              "type": "string",
              "enum": [
                "ALLOWED_VALUES",
                "REGEX"
              ]
            },
            "description": {
              "desc": "This is the description for InputSetValidator"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "HarnessForConfig": {
          "title": "HarnessForConfig",
          "type": "object",
          "properties": {
            "end": {
              "oneOf": [
                {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 0
                },
                {
                  "type": "string",
                  "pattern": "(<\\+.+>.*)",
                  "minLength": 1
                }
              ]
            },
            "items": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                {
                  "type": "string",
                  "pattern": "(<\\+.+>.*)",
                  "minLength": 1
                }
              ]
            },
            "maxConcurrency": {
              "oneOf": [
                {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 0
                },
                {
                  "type": "string",
                  "pattern": "(<\\+.+>.*)",
                  "minLength": 1
                }
              ]
            },
            "partitionSize": {
              "oneOf": [
                {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 0
                },
                {
                  "type": "string",
                  "pattern": "(<\\+.+>.*)",
                  "minLength": 1
                }
              ]
            },
            "start": {
              "oneOf": [
                {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 0
                },
                {
                  "type": "string",
                  "pattern": "(<\\+.+>.*)",
                  "minLength": 1
                }
              ]
            },
            "times": {
              "oneOf": [
                {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 0
                },
                {
                  "type": "string",
                  "pattern": "(<\\+.+>.*)",
                  "minLength": 1
                }
              ]
            },
            "unit": {
              "type": "string",
              "enum": [
                "Percentage",
                "Count"
              ]
            },
            "description": {
              "desc": "This is the description for HarnessForConfig"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#",
          "allOf": [
            {
              "oneOf": [
                {
                  "required": [
                    "times"
                  ]
                },
                {
                  "required": [
                    "items"
                  ]
                }
              ]
            }
          ]
        },
        "StrategyOnFailureType": {
          "title": "StrategyOnFailureType",
          "type": "string",
          "description": "Defines behaviour of execution strategy if one of the children fails.",
          "enum": [
            "RunAll",
            "SkipQueued"
          ],
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "NumberNGVariable": {
          "title": "NumberNGVariable",
          "allOf": [
            {
              "$ref": "#/definitions/pipeline/common/NGVariable"
            },
            {
              "type": "object",
              "required": [
                "value"
              ],
              "properties": {
                "default": {
                  "type": "number",
                  "format": "double"
                },
                "name": {
                  "type": "string",
                  "pattern": "^[a-zA-Z_][0-9a-zA-Z_\\.$-]{0,127}$"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "Number"
                  ]
                },
                "value": {
                  "oneOf": [
                    {
                      "type": "number",
                      "format": "double"
                    },
                    {
                      "type": "string",
                      "pattern": "((^[+-]?[0-9]*\\.?[0-9]+$)|(<\\+.+>.*))"
                    },
                    {
                      "type": "string",
                      "maxLength": 0
                    }
                  ]
                }
              }
            }
          ],
          "$schema": "http://json-schema.org/draft-07/schema#",
          "properties": {
            "description": {
              "desc": "This is the description for NumberNGVariable"
            }
          }
        },
        "NGVariable": {
          "title": "NGVariable",
          "type": "object",
          "discriminator": "type",
          "properties": {
            "description": {
              "type": "string",
              "desc": "This is the description for NGVariable"
            },
            "metadata": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "required": {
              "type": "boolean"
            },
            "type": {
              "type": "string",
              "enum": [
                "String",
                "Number",
                "Secret"
              ]
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "SecretNGVariable": {
          "title": "SecretNGVariable",
          "allOf": [
            {
              "$ref": "#/definitions/pipeline/common/NGVariable"
            },
            {
              "type": "object",
              "required": [
                "value"
              ],
              "properties": {
                "default": {
                  "type": "string"
                },
                "name": {
                  "type": "string",
                  "pattern": "^[a-zA-Z_][0-9a-zA-Z_\\.$-]{0,127}$"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "Secret"
                  ]
                },
                "value": {
                  "type": "string"
                }
              }
            }
          ],
          "$schema": "http://json-schema.org/draft-07/schema#",
          "properties": {
            "description": {
              "desc": "This is the description for SecretNGVariable"
            }
          }
        },
        "StringNGVariable": {
          "title": "StringNGVariable",
          "allOf": [
            {
              "$ref": "#/definitions/pipeline/common/NGVariable"
            },
            {
              "type": "object",
              "required": [
                "value"
              ],
              "properties": {
                "default": {
                  "type": "string"
                },
                "name": {
                  "type": "string",
                  "pattern": "^[a-zA-Z_][0-9a-zA-Z_\\.$-]{0,127}$"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "String"
                  ]
                },
                "value": {
                  "type": "string"
                }
              }
            }
          ],
          "$schema": "http://json-schema.org/draft-07/schema#",
          "properties": {
            "description": {
              "desc": "This is the description for StringNGVariable"
            }
          }
        },
        "RunModeConfig": {
          "title": "RunModeConfig",
          "type": "object",
          "required": [
            "type"
          ],
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "Manual",
                "Auto"
              ]
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#",
          "allOf": [
            {
              "if": {
                "properties": {
                  "type": {
                    "const": "Manual"
                  }
                }
              },
              "then": {
                "required": [
                  "timeout"
                ],
                "properties": {
                  "timeout": {
                    "type": "string",
                    "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
                  }
                }
              }
            },
            {
              "if": {
                "properties": {
                  "type": {
                    "const": "Auto"
                  }
                }
              },
              "then": {
                "properties": {}
              }
            }
          ]
        },
        "ExecutionWrapperValidation": {
          "title": "ExecutionWrapperValidation",
          "type": "object",
          "oneOf": [
            {
              "required": [
                "step"
              ]
            },
            {
              "required": [
                "parallel"
              ]
            },
            {
              "required": [
                "stepGroup"
              ]
            },
            {
              "required": [
                "insert"
              ]
            }
          ]
        },
        "StepElementConfig": {
          "title": "StepElementConfig",
          "type": "object",
          "required": [
            "identifier",
            "name",
            "type"
          ],
          "properties": {
            "description": {
              "type": "string",
              "desc": "This is the description for StepElementConfig"
            },
            "enforce": {
              "$ref": "#/definitions/pipeline/common/PolicyConfig"
            },
            "failureStrategies": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                  }
                },
                {
                  "type": "string",
                  "pattern": "^<\\+input>$",
                  "minLength": 1
                }
              ]
            },
            "identifier": {
              "type": "string",
              "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
            },
            "name": {
              "type": "string",
              "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
            },
            "strategy": {
              "$ref": "#/definitions/pipeline/common/StrategyConfig"
            },
            "timeout": {
              "type": "string",
              "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(<\\+input>.*)|(.*<\\+.*>.*)|(^$))$"
            },
            "type": {
              "type": "string",
              "enum": []
            },
            "when": {
              "oneOf": [
                {
                  "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                },
                {
                  "type": "string",
                  "pattern": "^<\\+input>$",
                  "minLength": 1
                }
              ]
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#",
          "allOf": []
        },
        "PolicyConfig": {
          "title": "PolicyConfig",
          "type": "object",
          "required": [
            "policySets"
          ],
          "properties": {
            "policySets": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                {
                  "type": "string",
                  "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                  "minLength": 1
                }
              ]
            },
            "description": {
              "desc": "This is the description for PolicyConfig"
            }
          },
          "metadata": {
            "inputProperties": {
              "type": "object",
              "internalType": "policy_config"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "StepWhenCondition": {
          "title": "StepWhenCondition",
          "type": "object",
          "required": [
            "stageStatus"
          ],
          "properties": {
            "condition": {
              "type": "string",
              "pattern": "^(?!<\\+input>.*\\.executionInput\\(\\)(.*)$)"
            },
            "stageStatus": {
              "type": "string",
              "enum": [
                "Success",
                "Failure",
                "All"
              ]
            },
            "description": {
              "desc": "This is the description for StepWhenCondition"
            }
          },
          "metadata": {
            "inputProperties": {
              "type": "string",
              "internalType": "conditional_execution"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "StepSpecType": {
          "title": "StepSpecType",
          "type": "object",
          "discriminator": "type",
          "$schema": "http://json-schema.org/draft-07/schema#",
          "properties": {
            "description": {
              "desc": "This is the description for StepSpecType"
            }
          }
        },
        "OutputNGVariable": {
          "title": "OutputNGVariable",
          "type": "object",
          "properties": {
            "description": {
              "type": "string",
              "desc": "This is the description for OutputNGVariable"
            },
            "name": {
              "type": "string",
              "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "ContainerResource": {
          "title": "ContainerResource",
          "type": "object",
          "properties": {
            "limits": {
              "$ref": "#/definitions/pipeline/common/Limits"
            },
            "requests": {
              "$ref": "#/definitions/pipeline/common/Limits"
            },
            "description": {
              "desc": "This is the description for ContainerResource"
            }
          },
          "anyOf": [
            {
              "required": [
                "limits"
              ]
            },
            {
              "required": [
                "requests"
              ]
            }
          ],
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "Limits": {
          "title": "Limits",
          "type": "object",
          "properties": {
            "cpu": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            },
            "memory": {
              "type": "string"
            },
            "description": {
              "desc": "This is the description for Limits"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "ParameterFieldMapStringJsonNode": {
          "title": "ParameterFieldMapStringJsonNode",
          "type": "object",
          "properties": {
            "defaultValue": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/pipeline/common/JsonNode"
              }
            },
            "executionInput": {
              "type": "boolean"
            },
            "expression": {
              "type": "boolean"
            },
            "expressionValue": {
              "type": "string"
            },
            "inputSetValidator": {
              "$ref": "#/definitions/pipeline/common/InputSetValidator"
            },
            "jsonResponseField": {
              "type": "boolean"
            },
            "responseField": {
              "type": "string"
            },
            "typeString": {
              "type": "boolean"
            },
            "value": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/pipeline/common/JsonNode"
              }
            },
            "description": {
              "desc": "This is the description for ParameterFieldMapStringJsonNode"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "Timeout": {
          "title": "Timeout",
          "type": "string",
          "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(<\\+.+>.*)|(^$))$",
          "metadata": {
            "inputProperties": {
              "type": "string",
              "internalType": "duration"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "ShellScriptSourceWrapper": {
          "title": "ShellScriptSourceWrapper",
          "type": "object",
          "required": [
            "spec",
            "type"
          ],
          "properties": {
            "type": {
              "type": "string"
            },
            "description": {
              "desc": "This is the description for ShellScriptSourceWrapper"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#",
          "allOf": [
            {
              "if": {
                "properties": {
                  "type": {
                    "const": "Harness"
                  }
                }
              },
              "then": {
                "properties": {
                  "spec": {
                    "$ref": "#/definitions/pipeline/common/HarnessFileStoreSource"
                  }
                }
              }
            },
            {
              "if": {
                "properties": {
                  "type": {
                    "const": "Inline"
                  }
                }
              },
              "then": {
                "properties": {
                  "spec": {
                    "$ref": "#/definitions/pipeline/common/ShellScriptInlineSource"
                  }
                }
              }
            }
          ]
        },
        "HarnessFileStoreSource": {
          "title": "HarnessFileStoreSource",
          "allOf": [
            {
              "$ref": "#/definitions/pipeline/common/ShellScriptBaseSource"
            },
            {
              "type": "object",
              "required": [
                "file"
              ],
              "properties": {
                "file": {
                  "type": "string"
                }
              }
            }
          ],
          "$schema": "http://json-schema.org/draft-07/schema#",
          "properties": {
            "description": {
              "desc": "This is the description for HarnessFileStoreSource"
            }
          }
        },
        "ShellScriptBaseSource": {
          "title": "ShellScriptBaseSource",
          "type": "object",
          "discriminator": "type",
          "properties": {
            "type": {
              "type": "string"
            },
            "description": {
              "desc": "This is the description for ShellScriptBaseSource"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "ShellScriptInlineSource": {
          "title": "ShellScriptInlineSource",
          "allOf": [
            {
              "$ref": "#/definitions/pipeline/common/ShellScriptBaseSource"
            },
            {
              "type": "object",
              "required": [
                "script"
              ],
              "properties": {
                "script": {
                  "type": "string",
                  "metadata": {
                    "inputProperties": {
                      "type": "string",
                      "internalType": "shell_script"
                    }
                  }
                }
              }
            }
          ],
          "$schema": "http://json-schema.org/draft-07/schema#",
          "properties": {
            "description": {
              "desc": "This is the description for ShellScriptInlineSource"
            }
          }
        },
        "DBDevOpsFailureStrategyConfig": {
          "title": "DBDevOpsFailureStrategyConfig",
          "type": "object",
          "required": [
            "onFailure"
          ],
          "properties": {
            "onFailure": {
              "$ref": "#/definitions/pipeline/common/DBDevOpsOnFailureConfig"
            },
            "description": {
              "desc": "This is the description for FailureStrategyConfig"
            }
          },
          "metadata": {
            "inputProperties": {
              "type": "string",
              "internalType": "failure_strategy"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "DBDevOpsOnFailureConfig": {
          "title": "DBDevOpsOnFailureConfig",
          "type": "object",
          "required": [
            "action",
            "errors"
          ],
          "properties": {
            "action": {
              "$ref": "#/definitions/pipeline/common/DBDevOpsFailureStrategyActionConfig"
            },
            "errors": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "Unknown",
                  "AllErrors",
                  "Authentication",
                  "Connectivity",
                  "Timeout",
                  "Authorization",
                  "Verification",
                  "DelegateProvisioning",
                  "PolicyEvaluationFailure",
                  "InputTimeoutError",
                  "ApprovalRejection",
                  "DelegateRestart",
                  "UserMarkedFailure"
                ]
              }
            },
            "description": {
              "desc": "This is the description for OnFailureConfig"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "DBDevOpsFailureStrategyActionConfig": {
          "title": "DBDevOpsFailureStrategyActionConfig",
          "type": "object",
          "required": [
            "type"
          ],
          "discriminator": "type",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "StageRollback",
                "PipelineRollback"
              ]
            },
            "description": {
              "desc": "This is the description for FailureStrategyActionConfig"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "AIAgentMLOpsFailureStrategyConfig": {
          "title": "AIAgentMLOpsFailureStrategyConfig",
          "type": "object",
          "required": [
            "onFailure"
          ],
          "properties": {
            "onFailure": {
              "$ref": "#/definitions/pipeline/common/AIAgentMLOpsOnFailureConfig"
            },
            "description": {
              "desc": "This is the description for FailureStrategyConfig"
            }
          },
          "metadata": {
            "inputProperties": {
              "type": "string",
              "internalType": "failure_strategy"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "AIAgentMLOpsOnFailureConfig": {
          "title": "AIAgentMLOpsOnFailureConfig",
          "type": "object",
          "required": [
            "action",
            "errors"
          ],
          "properties": {
            "action": {
              "$ref": "#/definitions/pipeline/common/AIAgentMLOpsFailureStrategyActionConfig"
            },
            "errors": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "Unknown",
                  "AllErrors",
                  "Authentication",
                  "Connectivity",
                  "Timeout",
                  "Authorization",
                  "Verification",
                  "DelegateProvisioning",
                  "PolicyEvaluationFailure",
                  "InputTimeoutError",
                  "ApprovalRejection",
                  "DelegateRestart",
                  "UserMarkedFailure"
                ]
              }
            },
            "description": {
              "desc": "This is the description for OnFailureConfig"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "AIAgentMLOpsFailureStrategyActionConfig": {
          "title": "AIAgentMLOpsFailureStrategyActionConfig",
          "type": "object",
          "required": [
            "type"
          ],
          "discriminator": "type",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "Ignore",
                "MarkAsSuccess",
                "Abort",
                "Retry"
              ]
            },
            "description": {
              "desc": "This is the description for FailureStrategyActionConfig"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "K8sDirectInfra": {
          "title": "K8sDirectInfra",
          "allOf": [
            {
              "$ref": "#/definitions/pipeline/common/StepGroupInfra"
            },
            {
              "type": "object",
              "required": [
                "spec",
                "type"
              ],
              "properties": {
                "spec": {
                  "$ref": "#/definitions/pipeline/steps/custom/ContainerInfraYamlSpec"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "KubernetesDirect",
                    "Delegate",
                    "Noop"
                  ]
                }
              }
            }
          ],
          "$schema": "http://json-schema.org/draft-07/schema#",
          "properties": {
            "description": {
              "desc": "This is the description for K8sDirectInfra"
            }
          }
        },
        "StepGroupInfra": {
          "title": "StepGroupInfra",
          "type": "object",
          "discriminator": "type",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "KubernetesDirect",
                "Delegate",
                "Noop",
                "VM",
                "ECSDirect"
              ]
            },
            "description": {
              "desc": "This is the description for StepGroupInfra"
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "VMInfra": {
          "title": "VMInfra",
          "allOf": [
            {
              "$ref": "#/definitions/pipeline/common/StepGroupInfra"
            },
            {
              "type": "object",
              "required": [
                "spec",
                "type"
              ],
              "properties": {
                "spec": {
                  "$ref": "#/definitions/pipeline/steps/custom/VmInfraSpec"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "VM"
                  ]
                }
              }
            }
          ],
          "$schema": "http://json-schema.org/draft-07/schema#",
          "properties": {
            "description": {
              "desc": "This is the description for VMInfra"
            }
          }
        },
        "ECSDirectInfra": {
          "title": "ECSDirectInfra",
          "allOf": [
            {
              "$ref": "#/definitions/pipeline/common/StepGroupInfra"
            },
            {
              "type": "object",
              "required": [
                "spec",
                "type"
              ],
              "properties": {
                "spec": {
                  "$ref": "#/definitions/pipeline/steps/custom/ECSDirectInfraYamlSpec"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "ECSDirect"
                  ]
                }
              }
            }
          ],
          "$schema": "http://json-schema.org/draft-07/schema#",
          "properties": {
            "description": {
              "desc": "This is the description for ECSDirectInfra"
            }
          }
        }
      },
      "NotificationChannelWrapper": {
        "title": "NotificationChannelWrapper",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Slack",
              "Email",
              "PagerDuty",
              "MsTeams",
              "Webhook",
              "Datadog"
            ]
          },
          "description": {
            "desc": "This is the description for NotificationChannelWrapper"
          }
        },
        "$schema": "http://json-schema.org/draft-07/schema#",
        "allOf": [
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Email"
                }
              }
            },
            "then": {
              "properties": {
                "spec": {
                  "$ref": "#/definitions/pipeline/PmsEmailChannel"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "MsTeams"
                }
              }
            },
            "then": {
              "properties": {
                "spec": {
                  "$ref": "#/definitions/pipeline/PmsMSTeamChannel"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "PagerDuty"
                }
              }
            },
            "then": {
              "properties": {
                "spec": {
                  "$ref": "#/definitions/pipeline/PmsPagerDutyChannel"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Slack"
                }
              }
            },
            "then": {
              "properties": {
                "spec": {
                  "$ref": "#/definitions/pipeline/PmsSlackChannel"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Webhook"
                }
              }
            },
            "then": {
              "properties": {
                "spec": {
                  "$ref": "#/definitions/pipeline/PmsWebhookChannel"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Datadog"
                }
              }
            },
            "then": {
              "properties": {
                "spec": {
                  "$ref": "#/definitions/pipeline/PmsDatadogChannel"
                }
              }
            }
          }
        ]
      },
      "PmsEmailChannel": {
        "title": "PmsEmailChannel",
        "allOf": [
          {
            "$ref": "#/definitions/pipeline/PmsNotificationChannel"
          },
          {
            "type": "object",
            "properties": {
              "recipients": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "userGroups": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "description": {
            "desc": "This is the description for PmsEmailChannel"
          }
        }
      },
      "PmsNotificationChannel": {
        "title": "PmsNotificationChannel",
        "type": "object",
        "discriminator": "type",
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "description": {
            "desc": "This is the description for PmsNotificationChannel"
          }
        }
      },
      "PmsMSTeamChannel": {
        "title": "PmsMSTeamChannel",
        "allOf": [
          {
            "$ref": "#/definitions/pipeline/PmsNotificationChannel"
          },
          {
            "type": "object",
            "properties": {
              "msTeamKeys": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "userGroups": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "description": {
            "desc": "This is the description for PmsMSTeamChannel"
          }
        }
      },
      "PmsPagerDutyChannel": {
        "title": "PmsPagerDutyChannel",
        "allOf": [
          {
            "$ref": "#/definitions/pipeline/PmsNotificationChannel"
          },
          {
            "type": "object",
            "properties": {
              "integrationKey": {
                "type": "string"
              },
              "userGroups": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "description": {
            "desc": "This is the description for PmsPagerDutyChannel"
          }
        }
      },
      "PmsSlackChannel": {
        "title": "PmsSlackChannel",
        "allOf": [
          {
            "$ref": "#/definitions/pipeline/PmsNotificationChannel"
          },
          {
            "type": "object",
            "properties": {
              "userGroups": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "webhookUrl": {
                "type": "string"
              }
            }
          }
        ],
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "description": {
            "desc": "This is the description for PmsSlackChannel"
          }
        }
      },
      "PmsWebhookChannel": {
        "title": "PmsWebhookChannel",
        "allOf": [
          {
            "$ref": "#/definitions/pipeline/PmsNotificationChannel"
          },
          {
            "type": "object",
            "properties": {
              "webhookUrl": {
                "type": "string"
              },
              "headers": {
                "type": "object"
              }
            }
          }
        ],
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "description": {
            "desc": "This is the description for PmsWebhookChannel"
          }
        }
      },
      "PmsDatadogChannel": {
        "title": "PmsDatadogChannel",
        "allOf": [
          {
            "$ref": "#/definitions/pipeline/PmsNotificationChannel"
          },
          {
            "type": "object",
            "required": [
              "url",
              "apiKey"
            ],
            "properties": {
              "url": {
                "type": "string"
              },
              "apiKey": {
                "type": "string"
              },
              "headers": {
                "type": "object"
              }
            }
          }
        ],
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "description": {
            "desc": "This is the description for PmsDatadogChannel"
          }
        }
      },
      "PipelineEvent": {
        "title": "PipelineEvent",
        "type": "object",
        "properties": {
          "forStages": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "forSteps": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "type": {
            "type": "string",
            "enum": [
              "AllEvents",
              "PipelineStart",
              "PipelineSuccess",
              "PipelineFailed",
              "PipelineEnd",
              "PipelinePaused",
              "StageSuccess",
              "StageFailed",
              "StageStart",
              "StepFailed",
              "TriggerFailed",
              "WaitingForUserAction",
              "PipelineResumed"
            ]
          },
          "description": {
            "desc": "This is the description for PipelineEvent"
          }
        },
        "$schema": "http://json-schema.org/draft-07/schema#"
      },
      "codebase": {
        "type": "object",
        "title": "codebase",
        "required": [
          "build"
        ],
        "properties": {
          "build": {
            "oneOf": [
              {
                "$ref": "#/definitions/pipeline/build"
              },
              {
                "type": "string",
                "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                "minLength": 1
              }
            ]
          },
          "connectorRef": {
            "type": "string"
          },
          "depth": {
            "oneOf": [
              {
                "type": "integer",
                "format": "int32"
              },
              {
                "type": "string",
                "pattern": "(<\\+.+>.*)",
                "minLength": 1
              }
            ]
          },
          "prCloneStrategy": {
            "oneOf": [
              {
                "type": "string",
                "enum": [
                  "MergeCommit",
                  "SourceBranch"
                ]
              },
              {
                "type": "string",
                "pattern": "(<\\+.+>.*)",
                "minLength": 1
              }
            ]
          },
          "repoName": {
            "type": "string"
          },
          "resources": {
            "type": "object",
            "required": [
              "limits"
            ],
            "properties": {
              "limits": {
                "type": "object",
                "properties": {
                  "cpu": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  "memory": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "sslVerify": {
            "oneOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string",
                "pattern": "(<\\+.+>.*)",
                "minLength": 1
              }
            ]
          },
          "lfs": {
            "oneOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string",
                "pattern": "(<\\+.+>.*)",
                "minLength": 1
              }
            ]
          },
          "debug": {
            "oneOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string",
                "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                "minLength": 1
              }
            ]
          },
          "fetchTags": {
            "oneOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string",
                "pattern": "(<\\+.+>.*)",
                "minLength": 1
              }
            ]
          },
          "sparseCheckout": {
            "oneOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "string",
                "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                "minLength": 1
              }
            ]
          },
          "submoduleStrategy": {
            "oneOf": [
              {
                "type": "string",
                "enum": [
                  "true",
                  "false",
                  "recursive"
                ]
              },
              {
                "type": "string",
                "pattern": "(<\\+.+>.*)",
                "minLength": 1
              }
            ]
          },
          "cloneDirectory": {
            "type": "string"
          },
          "preFetchCommand": {
            "type": "string"
          },
          "persistCredentials": {
            "oneOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string",
                "pattern": "(<\\+.+>.*)",
                "minLength": 1
              }
            ]
          }
        },
        "$schema": "http://json-schema.org/draft-07/schema#"
      },
      "build": {
        "title": "build",
        "type": "object",
        "required": [
          "spec",
          "type"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "branch",
              "tag",
              "PR",
              "commitSha"
            ]
          }
        },
        "$schema": "http://json-schema.org/draft-07/schema#",
        "allOf": [
          {
            "if": {
              "properties": {
                "type": {
                  "const": "PR"
                }
              }
            },
            "then": {
              "properties": {
                "spec": {
                  "type": "object",
                  "required": [
                    "number"
                  ],
                  "properties": {
                    "number": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "branch"
                }
              }
            },
            "then": {
              "properties": {
                "spec": {
                  "type": "object",
                  "required": [
                    "branch"
                  ],
                  "properties": {
                    "branch": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "tag"
                }
              }
            },
            "then": {
              "properties": {
                "spec": {
                  "type": "object",
                  "required": [
                    "tag"
                  ],
                  "properties": {
                    "tag": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "commitSha"
                }
              }
            },
            "then": {
              "properties": {
                "spec": {
                  "type": "object",
                  "required": [
                    "commitSha"
                  ],
                  "properties": {
                    "commitSha": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "stages": {
        "stages": {
          "type": "object",
          "title": "stages",
          "properties": {
            "parallel": {
              "$ref": "#/definitions/pipeline/stages/ParallelStageElementConfig"
            },
            "insert": {
              "$ref": "#/definitions/pipeline/stages/insert/InsertStageNode"
            },
            "stage": {
              "description": "This is stage node. it can be of various types like CI, CD, etc.",
              "oneOf": [
                {
                  "$ref": "#/definitions/pipeline/stages/iacm/IACMStageNode"
                },
                {
                  "$ref": "#/definitions/pipeline/stages/cd/DeploymentStageNode"
                },
                {
                  "$ref": "#/definitions/pipeline/stages/security/SecurityStageNode"
                },
                {
                  "$ref": "#/definitions/pipeline/stages/ci/IntegrationStageNode"
                },
                {
                  "$ref": "#/definitions/pipeline/stages/approval/ApprovalStageNode"
                },
                {
                  "$ref": "#/definitions/pipeline/stages/custom/PipelineStageNode"
                },
                {
                  "$ref": "#/definitions/pipeline/stages/custom/DynamicStageNode"
                },
                {
                  "$ref": "#/definitions/pipeline/stages/custom/CustomStageNode"
                },
                {
                  "$ref": "#/definitions/pipeline/stages/cf/FeatureFlagStageNode"
                },
                {
                  "$ref": "#/definitions/pipeline/stages/template/TemplateStageNode"
                },
                {
                  "$ref": "#/definitions/pipeline/stages/idp/IDPStageNode"
                },
                {
                  "$ref": "#/definitions/pipeline/stages/drtest/DRTestStageNode"
                }
              ]
            }
          },
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "ParallelStageElementConfig": {
          "type": "array",
          "title": "ParallelStageElementConfig",
          "items": {
            "$ref": "#/definitions/pipeline/stages/stages"
          },
          "$schema": "http://json-schema.org/draft-07/schema#",
          "properties": {
            "description": {
              "desc": "This is the description for ParallelStageElementConfig"
            }
          }
        },
        "insert": {
          "InsertStageNode": {
            "title": "InsertStageNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "stages"
            ],
            "properties": {
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_][-0-9a-zA-Z_\\s]{0,127}$"
              },
              "stages": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/stages"
                    },
                    "maxItems": 2147483647,
                    "minItems": 1
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  },
                  {
                    "type": "string",
                    "pattern": "^[\\s]*$"
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          }
        },
        "iacm": {
          "IACMStageNode": {
            "title": "IACMStageNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "type": "string",
                "desc": "This is the description for IACMStageNode"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "tags": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "type": {
                "type": "string",
                "enum": [
                  "IACM"
                ]
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/StageWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "runMode": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/RunModeConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "IACM"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/iacm/IACMStageConfigImpl"
                    }
                  }
                }
              }
            ]
          },
          "IACMStageConfigImpl": {
            "title": "IACMStageConfigImpl",
            "type": "object",
            "required": [
              "execution"
            ],
            "properties": {
              "cloneCodebase": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "execution": {
                "$ref": "#/definitions/pipeline/stages/iacm/ExecutionElementConfig"
              },
              "infrastructure": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DockerInfraYaml"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/HostedVmInfraYaml"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/K8sDirectInfraYaml"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/UseFromStageInfraYaml"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/VmInfraYaml"
                  }
                ]
              },
              "platform": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/Platform"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "runtime": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CloudRuntime"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DockerRuntime"
                  }
                ]
              },
              "serviceDependencies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/common/DependencyElement"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "sharedPaths": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "workspace": {
                "type": "string"
              },
              "moduleId": {
                "type": "string"
              },
              "playbooks": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "inventories": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "remoteExecutionId": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for IACMStageConfigImpl"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ExecutionElementConfig": {
            "title": "ExecutionElementConfig",
            "type": "object",
            "required": [
              "steps"
            ],
            "properties": {
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/iacm/ExecutionWrapperConfig"
                },
                "maxItems": 2147483647,
                "minItems": 1
              },
              "description": {
                "desc": "This is the description for ExecutionElementConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ExecutionWrapperConfig": {
            "title": "ExecutionWrapperConfig",
            "type": "object",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/ExecutionWrapperValidation"
              }
            ],
            "properties": {
              "parallel": {
                "$ref": "#/definitions/pipeline/stages/iacm/ParallelStepElementConfig"
              },
              "insert": {
                "$ref": "#/definitions/pipeline/stages/iacm/InsertStepsNode"
              },
              "step": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepElementConfig"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/RunStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/PluginStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ActionStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AgentStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/iacm/IACMTerraformPluginStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/iacm/IACMAwsCdkPluginStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/iacm/IACMApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/TemplateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/GitCloneStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/iacm/IACMOpenTofuPluginStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/iacm/IACMTFSecPluginStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/iacm/IACMTFLintPluginStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/iacm/IACMTFCompliancePluginStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/iacm/IACMCheckovPluginStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/WizScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CustomIngestScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SecurityNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CheckovScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SnykScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/iacm/IACMModuleTestPluginStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/iacm/IACMTerragruntPluginStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/iacm/IACMAnsiblePluginStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/QueueStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ShellScriptStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ContainerStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/HttpStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/EmailStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/WaitStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/HarnessApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/CustomApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/JiraApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/JiraCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/JiraUpdateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/BarrierStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/PolicyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowUpdateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowImportSetStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/FilesUploadStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/EventListenerStepNode"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for ExecutionWrapperConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ParallelStepElementConfig": {
            "title": "ParallelStepElementConfig",
            "type": "array",
            "items": {
              "$ref": "#/definitions/pipeline/stages/iacm/ExecutionWrapperConfig"
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ParallelStepElementConfig"
              }
            }
          },
          "InsertStepsNode": {
            "title": "InsertStepsNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "steps"
            ],
            "properties": {
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "steps": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/iacm/ExecutionWrapperConfig"
                    },
                    "maxItems": 2147483647,
                    "minItems": 1
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  },
                  {
                    "type": "string",
                    "pattern": "^[\\s]*$"
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          }
        },
        "cd": {
          "DeploymentStageNode": {
            "title": "DeploymentStageNode",
            "type": "object",
            "required": [
              "failureStrategies",
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "type": "string",
                "desc": "This is the description for DeploymentStageNode"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "skipInstances": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "tags": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "type": {
                "type": "string",
                "enum": [
                  "Deployment"
                ]
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/StageWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "runMode": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/RunModeConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Deployment"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/DeploymentStageConfig"
                    }
                  }
                }
              }
            ]
          },
          "DeploymentStageConfig": {
            "title": "DeploymentStageConfig",
            "type": "object",
            "required": [
              "execution"
            ],
            "properties": {
              "customDeploymentRef": {
                "$ref": "#/definitions/pipeline/stages/cd/StepTemplateRef"
              },
              "deploymentType": {
                "type": "string",
                "enum": [
                  "Kubernetes",
                  "NativeHelm",
                  "Ssh",
                  "WinRm",
                  "ServerlessAwsLambda",
                  "AzureWebApp",
                  "AzureFunction",
                  "CustomDeployment",
                  "ECS",
                  "Elastigroup",
                  "TAS",
                  "Asg",
                  "GoogleCloudFunctions",
                  "AwsLambda",
                  "AWS_SAM",
                  "GoogleCloudRun",
                  "AzureContainerApps",
                  "Salesforce",
                  "GoogleManagedInstanceGroup"
                ]
              },
              "environment": {
                "$ref": "#/definitions/pipeline/stages/cd/EnvironmentYamlV2"
              },
              "environmentGroup": {
                "$ref": "#/definitions/pipeline/stages/cd/EnvironmentGroupYaml"
              },
              "environments": {
                "$ref": "#/definitions/pipeline/stages/cd/EnvironmentsYaml"
              },
              "execution": {
                "$ref": "#/definitions/pipeline/stages/cd/ExecutionElementConfig"
              },
              "gitOpsEnabled": {
                "type": "boolean"
              },
              "infrastructure": {
                "$ref": "#/definitions/pipeline/stages/cd/PipelineInfrastructure"
              },
              "service": {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceYamlV2"
              },
              "serviceConfig": {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceConfig"
              },
              "services": {
                "$ref": "#/definitions/pipeline/stages/cd/ServicesYaml"
              },
              "multiDeploymentConfig": {
                "$ref": "#/definitions/pipeline/stages/cd/MultiDeploymentConfig"
              },
              "description": {
                "desc": "This is the description for DeploymentStageConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "AWS_SAM"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/AwsSamDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "GoogleCloudRun"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/GoogleCloudRunDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "AzureContainerApps"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/AzureContainerAppsDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "Salesforce"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/SalesforceDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "Asg"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/AsgDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "AwsLambda"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/AwsLambdaDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "AzureWebApp"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/AzureWebAppDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "AzureFunction"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/AzureFunctionDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "CustomDeployment"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "ECS"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/EcsDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "Elastigroup"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/ElastiGroupDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "GoogleCloudFunctions"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/GoogleCloudFunctionDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "Kubernetes"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/KubernetesDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "NativeHelm"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/NativeHelmDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "ServerlessAwsLambda"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/ServerlessAwsLambdaDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "Ssh"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/SshDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "TAS"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/TasDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "WinRm"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/WinrmDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "deploymentType": {
                      "const": "GoogleManagedInstanceGroup"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "deploymentMetadata": {
                      "$ref": "#/definitions/pipeline/stages/cd/GoogleMigDeploymentMetaData"
                    }
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "serviceConfig"
                    ]
                  },
                  {
                    "required": [
                      "service"
                    ]
                  },
                  {
                    "required": [
                      "services"
                    ]
                  }
                ]
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "environment"
                    ]
                  },
                  {
                    "required": [
                      "environmentGroup"
                    ]
                  },
                  {
                    "required": [
                      "environments"
                    ]
                  },
                  {
                    "required": [
                      "infrastructure"
                    ]
                  }
                ]
              }
            ]
          },
          "StepTemplateRef": {
            "title": "StepTemplateRef",
            "type": "object",
            "required": [
              "templateRef"
            ],
            "properties": {
              "templateRef": {
                "type": "string"
              },
              "versionLabel": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for StepTemplateRef"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "EnvironmentYamlV2": {
            "title": "EnvironmentYamlV2",
            "type": "object",
            "properties": {
              "deployToAll": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "environmentInputs": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/JsonNode"
                  },
                  {
                    "type": "string",
                    "pattern": "(^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$|^$)"
                  }
                ]
              },
              "environmentRef": {
                "type": "string",
                "pattern": "^(?=\\s*\\S).*$"
              },
              "gitBranch": {
                "type": "string"
              },
              "useFromStage": {
                "$ref": "#/definitions/pipeline/stages/cd/EnvironmentInfraUseFromStage"
              },
              "filters": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/cd/FilterYaml"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "gitOpsClusters": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/cd/ClusterYaml"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "infrastructureDefinition": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/stages/cd/InfraStructureDefinitionYaml"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "infrastructureDefinitions": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/cd/InfraStructureDefinitionYaml"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*|^$)"
                  }
                ]
              },
              "provisioner": {
                "$ref": "#/definitions/pipeline/stages/cd/ExecutionElementConfig"
              },
              "serviceOverrideInputs": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/JsonNode"
                  },
                  {
                    "type": "string",
                    "pattern": "(^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$|^$)"
                  }
                ]
              },
              "servicesOverrides": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/cd/ServiceOverrideInputsYaml"
                }
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for EnvironmentYamlV2"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "EnvironmentInfraUseFromStage": {
            "title": "EnvironmentInfraUseFromStage",
            "type": "object",
            "required": [
              "stage"
            ],
            "properties": {
              "metadata": {
                "type": "string"
              },
              "stage": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "description": {
                "desc": "This is used when you want to propagate environment from one of the previous stages."
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FilterYaml": {
            "title": "FilterYaml",
            "type": "object",
            "required": [
              "entities",
              "identifier",
              "spec",
              "type"
            ],
            "properties": {
              "entities": {
                "type": "array",
                "uniqueItems": true,
                "items": {
                  "type": "string",
                  "enum": [
                    "infrastructures",
                    "gitOpsClusters",
                    "environments"
                  ]
                }
              },
              "identifier": {
                "type": "string"
              },
              "spec": {
                "$ref": "#/definitions/pipeline/stages/cd/FilterSpec"
              },
              "type": {
                "type": "string",
                "enum": [
                  "tags",
                  "all"
                ]
              },
              "description": {
                "desc": "This is the description for FilterYaml"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FilterSpec": {
            "title": "FilterSpec",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for FilterSpec"
              }
            }
          },
          "ClusterYaml": {
            "title": "ClusterYaml",
            "type": "object",
            "required": [
              "identifier"
            ],
            "properties": {
              "identifier": {
                "type": "string"
              },
              "metadata": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ClusterYaml"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "InfraStructureDefinitionYaml": {
            "title": "InfraStructureDefinitionYaml",
            "type": "object",
            "required": [
              "identifier"
            ],
            "properties": {
              "identifier": {
                "type": "string",
                "pattern": "^(?=\\s*\\S).*$"
              },
              "inputs": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/JsonNode"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "metadata": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for InfraStructureDefinitionYaml"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ExecutionElementConfig": {
            "title": "ExecutionElementConfig",
            "type": "object",
            "required": [
              "steps"
            ],
            "properties": {
              "rollbackSteps": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/cd/ExecutionWrapperConfig"
                }
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/cd/ExecutionWrapperConfig"
                },
                "maxItems": 2147483647,
                "minItems": 1
              },
              "description": {
                "desc": "This is the description for ExecutionElementConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ExecutionWrapperConfig": {
            "title": "ExecutionWrapperConfig",
            "type": "object",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/ExecutionWrapperValidation"
              }
            ],
            "properties": {
              "parallel": {
                "$ref": "#/definitions/pipeline/stages/cd/ParallelStepElementConfig"
              },
              "insert": {
                "$ref": "#/definitions/pipeline/stages/cd/InsertStepsNode"
              },
              "step": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepElementConfig"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/MergePRStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/HelmDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TasBGAppSetupStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ElastigroupSetupStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/EcsRollingRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TasCanaryAppSetupStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleFunctionsRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleFunctionsGenOneRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/CloudformationDeleteStackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ElastigroupSwapRouteStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/BambooBuildStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/EcsCanaryDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TasSwapRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/K8sDryRunManifestStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ElastigroupDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/K8sDiffStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/FetchLinkedAppsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformDestroyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/JenkinsBuildStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerragruntApplyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TasRollingRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformPlanStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureWebAppRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleFunctionsDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/K8sBGStageScaleDownStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgCanaryDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SyncStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GitOpsRolloutStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/RevertPRStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/K8sBlueGreenStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/EcsBlueGreenCreateServiceStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/EcsUpgradeContainerStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/EcsServiceSetupStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/EcsBasicRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgRollingDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgSteadyStateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ShellScriptProvisionStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureCreateARMResourceStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/EcsBlueGreenSwapTargetGroupsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/FetchInstanceScriptStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/K8sScaleStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgCanaryDeleteStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ServerlessAwsLambdaRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureWebAppTrafficShiftStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureWebAppSwapSlotStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TasRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/K8sCanaryDeleteStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TasAppResizeStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TasBasicAppSetupStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleFunctionsTrafficShiftStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ElastigroupBGStageSetupStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/HelmRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/K8sDeleteStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/K8sCanaryStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/EcsCanaryDeleteStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgRollingRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/EcsRunTaskStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgBlueGreenRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AwsSamRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AwsSamBuildStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/K8sBGSwapServicesStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureARMRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerragruntRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureCreateBPStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleFunctionsDeployWithoutTrafficStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AwsSamDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TasCommandStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/K8sApplyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TasRollingDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AwsLambdaDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AwsLambdaCanaryDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AwsLambdaCanaryRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AwsLambdaTrafficShiftStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/CloudformationRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ServerlessAwsLambdaDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/K8sRollingRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/K8sRollingStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgBlueGreenSwapServiceStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleFunctionsGenOneDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/CommandStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/CloudformationCreateStackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerragruntPlanStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudRunStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureWebAppSlotDeploymentStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/EcsBlueGreenRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ElastigroupRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformApplyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TasSwapRoutesStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AwsLambdaRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/EcsRollingDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/EcsScaleStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgScaleStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgBlueGreenDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgShiftTrafficStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgPhasedDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgSetupStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/DownloadManifestsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TasRouteMappingStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/UpdateReleaseRepoStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/LoadTestStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosProbeNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosActionNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosFaultNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/AiEvalsRunStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AiTestAutomationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerragruntDestroyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentConfig"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/BackgroundStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/GitCloneStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cvng/CVVerifyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cvng/CVAnalyzeDeploymentStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/CdSscaOrchestrationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/CdSscaEnforcementStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SscaEnforcementStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SscaOrchestrationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ArtifactVerificationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/HttpStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/EmailStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/QueueStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ShellScriptStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/CustomApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/JiraCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/JiraUpdateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/TemplateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/JiraApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/HarnessApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/BarrierStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowUpdateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowImportSetStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/PolicyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/WaitStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ContainerStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/RunStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AiVerifyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AIVerifyNGStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/PluginStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureFunctionDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureFunctionRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ServerlessAwsLambdaDeployV2StepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ServerlessAwsLambdaPackageV2StepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ServerlessAwsLambdaPrepareRollbackV2StepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ServerlessAwsLambdaRollbackV2StepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsCdkBootstrapStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsCdkSynthStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsCdkDiffStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsCdkDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsCdkDestroyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsCdkRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SlsaVerificationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DBApplySchemaStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DBRollbackSchemaStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/UpdateGitOpsAppStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/K8sTrafficRoutingStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/DownloadAwsS3StepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/DownloadGcsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/DownloadHarnessStoreStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/K8sPatchStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/K8sRolloutStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GitOpsGetAppDetailsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/HelmBlueGreenSwapStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/HelmBlueGreenStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/HelmCanaryDeleteStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/HelmCanaryDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/LiquibaseCommandStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/FilesUploadStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureContainerAppsDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureContainerAppsPrepareRollbackDataStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureContainerAppsTrafficShiftStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureContainerAppsRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunPrepareRollbackDataStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunTrafficShiftStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleMigDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleMigBlueGreenDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleMigTrafficShiftStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleMigBlueGreenRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleMigSteadyStateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GCEProvisionBackendServiceStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceApexTestStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceSourceBackupStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceValidateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceQuickDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceCreateScratchOrgStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceDeleteScratchOrgStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceDownloadDeployablesStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceDownloadOrgStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceEvaluateDiffStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/idp/IDPSlackNotifyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunJobStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/EventListenerStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/HelmDeleteStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/EcsBlueGreenTrafficShiftStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/StandAloneTrafficShiftRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ElastigroupBlueGreenTrafficShiftStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/S3UploadNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CustomIngestScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AIExperimentStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DBOPSTestAndPreviewStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DBSchemaUpdateSQLNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DBSchemaRollbackSQLNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/FlywayCommandStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/WizScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AgentStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagDeleteStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagArchiveStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagLimitExposureStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagUpdateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagDefaultAllocationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagAddRemoveIndividualTargetsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetIndividualTargetsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagKillStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetImpressionTrackingStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagRestoreStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagReallocateTrafficStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetDynamicConfigurationsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetTreatmentsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagPatchDefinitionStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetTargetingRulesStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentUpdateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentDeleteStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentAddRemoveTargetsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentSetTargetingRulesStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagsetCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagsetDeleteStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagAddRemoveFlagsetsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagDefinitionInstructionsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeMetricCheckStepNode"
                  }
                ]
              },
              "stepGroup": {
                "$ref": "#/definitions/pipeline/stages/cd/StepGroupElementConfig"
              },
              "description": {
                "desc": "This is the description for ExecutionWrapperConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ParallelStepElementConfig": {
            "title": "ParallelStepElementConfig",
            "type": "array",
            "items": {
              "$ref": "#/definitions/pipeline/stages/cd/ExecutionWrapperConfig"
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ParallelStepElementConfig"
              }
            }
          },
          "InsertStepsNode": {
            "title": "InsertStepsNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "steps"
            ],
            "properties": {
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "steps": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/cd/ExecutionWrapperConfig"
                    },
                    "maxItems": 2147483647,
                    "minItems": 1
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  },
                  {
                    "type": "string",
                    "pattern": "^[\\s]*$"
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CustomDeploymentConfig": {
            "title": "CustomDeploymentConfig",
            "type": "object",
            "required": [
              "execution",
              "infrastructure"
            ],
            "properties": {
              "execution": {
                "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentExecutionConfig"
              },
              "infrastructure": {
                "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentInfraConfig"
              },
              "metadata": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for CustomDeploymentConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CustomDeploymentExecutionConfig": {
            "title": "CustomDeploymentExecutionConfig",
            "type": "object",
            "properties": {
              "stepTemplateRefs": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "description": {
                "desc": "This is the description for CustomDeploymentExecutionConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CustomDeploymentInfraConfig": {
            "title": "CustomDeploymentInfraConfig",
            "type": "object",
            "required": [
              "fetchInstancesScript",
              "instanceAttributes",
              "instancesListPath"
            ],
            "properties": {
              "fetchInstancesScript": {
                "minLength": 1,
                "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentFetchInstancesScriptConfig"
              },
              "instanceAttributes": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentInstanceAttributes"
                },
                "minLength": 1
              },
              "instancesListPath": {
                "type": "string",
                "minLength": 1
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentConnectorNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentNumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentSecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentStringNGVariable"
                    }
                  ]
                }
              },
              "description": {
                "desc": "This is the description for CustomDeploymentInfraConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CustomDeploymentFetchInstancesScriptConfig": {
            "title": "CustomDeploymentFetchInstancesScriptConfig",
            "type": "object",
            "required": [
              "store"
            ],
            "properties": {
              "metadata": {
                "type": "string"
              },
              "store": {
                "minLength": 1,
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
              },
              "description": {
                "desc": "This is the description for CustomDeploymentFetchInstancesScriptConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CustomDeploymentInstanceAttributes": {
            "title": "CustomDeploymentInstanceAttributes",
            "type": "object",
            "required": [
              "jsonPath",
              "name"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for CustomDeploymentInstanceAttributes"
              },
              "jsonPath": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string",
                "minLength": 1
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CustomDeploymentConnectorNGVariable": {
            "title": "CustomDeploymentConnectorNGVariable",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentNGVariable"
              },
              {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "Connector"
                    ]
                  },
                  "value": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CustomDeploymentConnectorNGVariable"
              }
            }
          },
          "CustomDeploymentNGVariable": {
            "title": "CustomDeploymentNGVariable",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for CustomDeploymentNGVariable"
              },
              "name": {
                "type": "string"
              },
              "required": {
                "type": "boolean"
              },
              "type": {
                "type": "string",
                "enum": [
                  "String",
                  "Number",
                  "Secret",
                  "Connector"
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CustomDeploymentNumberNGVariable": {
            "title": "CustomDeploymentNumberNGVariable",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentNGVariable"
              },
              {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "Number"
                    ]
                  },
                  "value": {
                    "oneOf": [
                      {
                        "type": "number",
                        "format": "double"
                      },
                      {
                        "type": "string",
                        "pattern": "(^[+-]?[0-9]+\\.?[0-9]*$|(<\\+.+>.*)|^$)"
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CustomDeploymentNumberNGVariable"
              }
            }
          },
          "CustomDeploymentSecretNGVariable": {
            "title": "CustomDeploymentSecretNGVariable",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentNGVariable"
              },
              {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "Secret"
                    ]
                  },
                  "value": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CustomDeploymentSecretNGVariable"
              }
            }
          },
          "CustomDeploymentStringNGVariable": {
            "title": "CustomDeploymentStringNGVariable",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentNGVariable"
              },
              {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "String"
                    ]
                  },
                  "value": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CustomDeploymentStringNGVariable"
              }
            }
          },
          "StepGroupElementConfig": {
            "title": "StepGroupElementConfig",
            "type": "object",
            "required": [
              "identifier",
              "name"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "sharedPaths": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "stepGroupInfra": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/K8sDirectInfra"
                  },
                  {
                    "$ref": "#/definitions/pipeline/common/VMInfra"
                  },
                  {
                    "$ref": "#/definitions/pipeline/common/ECSDirectInfra"
                  }
                ]
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/cd/ExecutionWrapperConfig"
                },
                "maxItems": 2147483647,
                "minItems": 1
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "template": {
                "$ref": "#/definitions/pipeline/steps/custom/TemplateLinkConfig"
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for StepGroupElementConfig"
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "oneOf": [
                  {
                    "required": [
                      "template"
                    ]
                  },
                  {
                    "required": [
                      "steps"
                    ]
                  }
                ]
              }
            ]
          },
          "ServiceOverrideInputsYaml": {
            "title": "ServiceOverrideInputsYaml",
            "type": "object",
            "required": [
              "serviceRef"
            ],
            "properties": {
              "serviceOverrideInputs": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/JsonNode"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "serviceRef": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ServiceOverrideInputsYaml"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "EnvironmentGroupYaml": {
            "title": "EnvironmentGroupYaml",
            "type": "object",
            "required": [
              "envGroupRef"
            ],
            "properties": {
              "__uuid": {
                "type": "string"
              },
              "deployToAll": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "envGroupRef": {
                "type": "string",
                "pattern": "^(?=\\s*\\S).*$"
              },
              "environments": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/cd/EnvironmentYamlV2"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "filters": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/cd/FilterYaml"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "metadata": {
                "$ref": "#/definitions/pipeline/stages/cd/EnvironmentGroupMetadata"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for EnvironmentGroupYaml"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "EnvironmentGroupMetadata": {
            "title": "EnvironmentGroupMetadata",
            "type": "object",
            "properties": {
              "parallel": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*|^$)"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for EnvironmentGroupMetadata"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "EnvironmentsYaml": {
            "title": "EnvironmentsYaml",
            "type": "object",
            "properties": {
              "filters": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/cd/FilterYaml"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "metadata": {
                "readOnly": true,
                "$ref": "#/definitions/pipeline/stages/cd/EnvironmentsMetadata"
              },
              "values": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/cd/EnvironmentYamlV2"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for EnvironmentsYaml"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "EnvironmentsMetadata": {
            "title": "EnvironmentsMetadata",
            "type": "object",
            "properties": {
              "parallel": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*|^$)"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for EnvironmentsMetadata"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "PipelineInfrastructure": {
            "title": "PipelineInfrastructure",
            "type": "object",
            "properties": {
              "allowSimultaneousDeployments": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "environment": {
                "$ref": "#/definitions/pipeline/stages/cd/EnvironmentYaml"
              },
              "environmentRef": {
                "type": "string"
              },
              "infrastructureDefinition": {
                "$ref": "#/definitions/pipeline/stages/cd/InfrastructureDef"
              },
              "infrastructureKey": {
                "type": "string"
              },
              "useFromStage": {
                "$ref": "#/definitions/pipeline/stages/cd/InfraUseFromStage"
              },
              "description": {
                "desc": "This is the description for PipelineInfrastructure"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "oneOf": [
                  {
                    "required": [
                      "environment"
                    ]
                  },
                  {
                    "required": [
                      "environmentRef"
                    ]
                  }
                ]
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "useFromStage"
                    ]
                  },
                  {
                    "required": [
                      "infrastructureDefinition"
                    ]
                  }
                ]
              }
            ]
          },
          "EnvironmentYaml": {
            "title": "EnvironmentYaml",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for EnvironmentYaml"
              },
              "identifier": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "tags": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "type": {
                "type": "string",
                "enum": [
                  "PreProduction",
                  "Production"
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "InfrastructureDef": {
            "title": "InfrastructureDef",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "provisioner": {
                "$ref": "#/definitions/pipeline/stages/cd/ExecutionElementConfig"
              },
              "type": {
                "type": "string",
                "enum": [
                  "KubernetesDirect",
                  "KubernetesGcp",
                  "KubernetesAzure",
                  "Pdc",
                  "SshWinRmAzure",
                  "ServerlessAwsLambda",
                  "AzureWebApp",
                  "AzureFunction",
                  "SshWinRmAws",
                  "SshGcp",
                  "CustomDeployment",
                  "ECS",
                  "Elastigroup",
                  "TAS",
                  "Asg",
                  "GoogleCloudFunctions",
                  "AWS_SAM",
                  "AwsLambda",
                  "KubernetesAws",
                  "KubernetesRancher",
                  "GoogleCloudRun",
                  "AzureContainerApps",
                  "Salesforce",
                  "GoogleManagedInstanceGroup"
                ]
              },
              "description": {
                "desc": "This is the description for InfrastructureDef"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AWS_SAM"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AwsSamInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudRun"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GoogleCloudRunInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureContainerApps"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AzureContainerAppsInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Salesforce"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/SalesforceInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Asg"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AsgInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsLambda"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AwsLambdaInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureWebApp"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AzureWebAppInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureFunction"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AzureFunctionInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CustomDeployment"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ECS"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/EcsInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Elastigroup"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/ElastigroupInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudFunctions"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GoogleFunctionsInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "KubernetesAws"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/K8sAwsInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "KubernetesAzure"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/K8sAzureInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "KubernetesDirect"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/K8SDirectInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "KubernetesGcp"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/K8sGcpInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "KubernetesRancher"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/K8sRancherInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Pdc"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/PdcInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ServerlessAwsLambda"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/ServerlessAwsLambdaInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SshWinRmAws"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/SshWinRmAwsInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SshWinRmAzure"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/SshWinRmAzureInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SshGcp"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/SshGcpInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TAS"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/TanzuApplicationServiceInfrastructure"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleManagedInstanceGroup"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GoogleMigInfrastructure"
                    }
                  }
                }
              }
            ]
          },
          "AwsSamInfrastructure": {
            "title": "AwsSamInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "region"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "provisioner": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AwsSamInfrastructure"
              }
            }
          },
          "GoogleCloudRunInfrastructure": {
            "title": "GoogleCloudRunInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "project",
                  "region"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "project": {
                    "type": "string",
                    "minLength": 1
                  },
                  "region": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GoogleCloudRunInfrastructure"
              }
            }
          },
          "AzureContainerAppsInfrastructure": {
            "title": "AzureContainerAppsInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "subscriptionId",
                  "resourceGroup",
                  "managedEnvironment"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "subscriptionId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "resourceGroup": {
                    "type": "string",
                    "minLength": 1
                  },
                  "managedEnvironment": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AzureContainerAppsInfrastructure"
              }
            }
          },
          "SalesforceInfrastructure": {
            "title": "SalesforceInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for SalesforceInfrastructure"
              }
            }
          },
          "AsgInfrastructure": {
            "title": "AsgInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "region"
                ],
                "properties": {
                  "baseAsgName": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "provisioner": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AsgInfrastructure"
              }
            }
          },
          "AwsLambdaInfrastructure": {
            "title": "AwsLambdaInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "region"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "provisioner": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AwsLambdaInfrastructure"
              }
            }
          },
          "AzureWebAppInfrastructure": {
            "title": "AzureWebAppInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "resourceGroup",
                  "subscriptionId"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "provisioner": {
                    "type": "string"
                  },
                  "resourceGroup": {
                    "type": "string",
                    "minLength": 1
                  },
                  "subscriptionId": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AzureWebAppInfrastructure"
              }
            }
          },
          "AzureFunctionInfrastructure": {
            "title": "AzureFunctionInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "resourceGroup",
                  "subscriptionId"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "provisioner": {
                    "type": "string"
                  },
                  "resourceGroup": {
                    "type": "string",
                    "minLength": 1
                  },
                  "subscriptionId": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AzureFunctionInfrastructure"
              }
            }
          },
          "CustomDeploymentInfrastructure": {
            "title": "CustomDeploymentInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "customDeploymentRef"
                ],
                "properties": {
                  "customDeploymentRef": {
                    "minLength": 1,
                    "$ref": "#/definitions/pipeline/stages/cd/StepTemplateRef"
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "provisioner": {
                    "type": "string"
                  },
                  "variables": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentConnectorNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentNumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentSecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentStringNGVariable"
                        }
                      ]
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CustomDeploymentInfrastructure"
              }
            }
          },
          "EcsInfrastructure": {
            "title": "EcsInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "cluster",
                  "connectorRef",
                  "region"
                ],
                "properties": {
                  "cluster": {
                    "type": "string",
                    "minLength": 1
                  },
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "provisioner": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for EcsInfrastructure"
              }
            }
          },
          "ElastigroupInfrastructure": {
            "title": "ElastigroupInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "configuration",
                  "connectorRef"
                ],
                "properties": {
                  "configuration": {
                    "$ref": "#/definitions/pipeline/stages/cd/ElastigroupConfiguration"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "provisioner": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ElastigroupInfrastructure"
              }
            }
          },
          "ElastigroupConfiguration": {
            "title": "ElastigroupConfiguration",
            "type": "object",
            "required": [
              "store"
            ],
            "properties": {
              "metadata": {
                "type": "string"
              },
              "store": {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
              },
              "description": {
                "desc": "This is the description for ElastigroupConfiguration"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "GoogleFunctionsInfrastructure": {
            "title": "GoogleFunctionsInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "project",
                  "region"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "project": {
                    "type": "string",
                    "minLength": 1
                  },
                  "provisioner": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GoogleFunctionsInfrastructure"
              }
            }
          },
          "K8sAwsInfrastructure": {
            "title": "K8sAwsInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "cluster",
                  "connectorRef",
                  "namespace",
                  "releaseName"
                ],
                "properties": {
                  "cluster": {
                    "type": "string",
                    "minLength": 1
                  },
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "namespace": {
                    "oneOf": [
                      {
                        "type": "string",
                        "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ],
                    "minLength": 1
                  },
                  "provisioner": {
                    "type": "string"
                  },
                  "releaseName": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for K8sAwsInfrastructure"
              }
            }
          },
          "K8sAzureInfrastructure": {
            "title": "K8sAzureInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "cluster",
                  "connectorRef",
                  "namespace",
                  "releaseName",
                  "resourceGroup",
                  "subscriptionId"
                ],
                "properties": {
                  "cluster": {
                    "type": "string",
                    "minLength": 1
                  },
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "namespace": {
                    "oneOf": [
                      {
                        "type": "string",
                        "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ],
                    "minLength": 1
                  },
                  "provisioner": {
                    "type": "string"
                  },
                  "releaseName": {
                    "type": "string",
                    "minLength": 1
                  },
                  "resourceGroup": {
                    "type": "string",
                    "minLength": 1
                  },
                  "subscriptionId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "useClusterAdminCredentials": {
                    "type": "boolean"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for K8sAzureInfrastructure"
              }
            }
          },
          "K8SDirectInfrastructure": {
            "title": "K8SDirectInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "namespace",
                  "releaseName"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "namespace": {
                    "oneOf": [
                      {
                        "type": "string",
                        "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ],
                    "minLength": 1
                  },
                  "provisioner": {
                    "type": "string"
                  },
                  "releaseName": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for K8SDirectInfrastructure"
              }
            }
          },
          "K8sGcpInfrastructure": {
            "title": "K8sGcpInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "cluster",
                  "connectorRef",
                  "namespace",
                  "releaseName"
                ],
                "properties": {
                  "cluster": {
                    "type": "string",
                    "minLength": 1
                  },
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "namespace": {
                    "oneOf": [
                      {
                        "type": "string",
                        "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ],
                    "minLength": 1
                  },
                  "provisioner": {
                    "type": "string"
                  },
                  "releaseName": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for K8sGcpInfrastructure"
              }
            }
          },
          "K8sRancherInfrastructure": {
            "title": "K8sRancherInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "cluster",
                  "connectorRef",
                  "namespace",
                  "releaseName"
                ],
                "properties": {
                  "cluster": {
                    "type": "string",
                    "minLength": 1
                  },
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "namespace": {
                    "oneOf": [
                      {
                        "type": "string",
                        "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ],
                    "minLength": 1
                  },
                  "provisioner": {
                    "type": "string"
                  },
                  "releaseName": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for K8sRancherInfrastructure"
              }
            }
          },
          "PdcInfrastructure": {
            "title": "PdcInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {}
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "oneOf": [
              {
                "type": "object",
                "required": [
                  "credentialsRef",
                  "hostFilter",
                  "hostArrayPath"
                ],
                "properties": {
                  "credentialsRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "hostArrayPath": {
                    "type": "string"
                  },
                  "hostAttributes": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "hostFilter": {
                    "$ref": "#/definitions/pipeline/stages/cd/HostFilter"
                  },
                  "provisioner": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "credentialsRef",
                  "hostFilter",
                  "connectorRef"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "credentialsRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "hostAttributes": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "hostFilter": {
                    "$ref": "#/definitions/pipeline/stages/cd/HostFilter"
                  },
                  "provisioner": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "credentialsRef",
                  "hostFilter",
                  "hosts"
                ],
                "properties": {
                  "credentialsRef": {
                    "type": "string"
                  },
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "hostAttributes": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "hostFilter": {
                    "$ref": "#/definitions/pipeline/stages/cd/HostFilter"
                  },
                  "hosts": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "provisioner": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "hostGroups"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "hostAttributes": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "hostGroups": {
                    "type": "array",
                    "required": [
                      "credentialsRef",
                      "identifier",
                      "hosts"
                    ],
                    "items": {
                      "identifier": {
                        "type": "string"
                      },
                      "credentialsRef": {
                        "type": "string"
                      },
                      "hosts": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "provisioner": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            ],
            "properties": {
              "description": {
                "desc": "This is the description for PdcInfrastructure"
              }
            }
          },
          "HostFilter": {
            "title": "HostFilter",
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "All",
                  "HostNames",
                  "HostAttributes"
                ]
              },
              "description": {
                "desc": "This is the description for HostFilter"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "All"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AllHostsFilter"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HostAttributes"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/HostAttributesFilter"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HostNames"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/HostNamesFilter"
                    }
                  }
                }
              }
            ]
          },
          "AllHostsFilter": {
            "title": "AllHostsFilter",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/HostFilterSpec"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AllHostsFilter"
              }
            }
          },
          "HostFilterSpec": {
            "title": "HostFilterSpec",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "All",
                  "HostNames",
                  "HostAttributes"
                ]
              },
              "description": {
                "desc": "This is the description for HostFilterSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "HostAttributesFilter": {
            "title": "HostAttributesFilter",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/HostFilterSpec"
              },
              {
                "type": "object",
                "properties": {
                  "value": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for HostAttributesFilter"
              }
            }
          },
          "HostNamesFilter": {
            "title": "HostNamesFilter",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/HostFilterSpec"
              },
              {
                "type": "object",
                "properties": {
                  "value": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "(<\\+.+>.*)",
                        "minLength": 1
                      }
                    ]
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for HostNamesFilter"
              }
            }
          },
          "ServerlessAwsLambdaInfrastructure": {
            "title": "ServerlessAwsLambdaInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "region",
                  "stage"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "provisioner": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string",
                    "minLength": 1
                  },
                  "stage": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ServerlessAwsLambdaInfrastructure"
              }
            }
          },
          "SshWinRmAwsInfrastructure": {
            "title": "SshWinRmAwsInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "credentialsRef",
                  "hostConnectionType",
                  "region"
                ],
                "properties": {
                  "awsInstanceFilter": {
                    "$ref": "#/definitions/pipeline/stages/cd/AwsInstanceFilter"
                  },
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "credentialsRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "hostConnectionType": {
                    "type": "string",
                    "enum": [
                      "PublicIP",
                      "PrivateIP"
                    ],
                    "minLength": 1
                  },
                  "provisioner": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string",
                    "minLength": 1
                  },
                  "asgName": {
                    "type": "string"
                  },
                  "targetedHosts": [
                    {
                      "type": "string",
                      "pattern": "^<\\+input>$",
                      "minLength": 1
                    }
                  ]
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for SshWinRmAwsInfrastructure"
              }
            }
          },
          "AwsInstanceFilter": {
            "title": "AwsInstanceFilter",
            "type": "object",
            "properties": {
              "tags": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "vpcs": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for AwsInstanceFilter"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "SshWinRmAzureInfrastructure": {
            "title": "SshWinRmAzureInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "credentialsRef",
                  "hostConnectionType",
                  "resourceGroup",
                  "subscriptionId"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "credentialsRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "hostConnectionType": {
                    "type": "string",
                    "enum": [
                      "Hostname",
                      "PrivateIP",
                      "PublicIP"
                    ],
                    "minLength": 1
                  },
                  "provisioner": {
                    "type": "string"
                  },
                  "resourceGroup": {
                    "type": "string",
                    "minLength": 1
                  },
                  "subscriptionId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "tags": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "targetedHosts": [
                    {
                      "type": "string",
                      "pattern": "^<\\+input>$",
                      "minLength": 1
                    }
                  ]
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for SshWinRmAzureInfrastructure"
              }
            }
          },
          "SshGcpInfrastructure": {
            "title": "SshGcpInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "hostConnectionType",
                  "project",
                  "sshMode"
                ],
                "properties": {
                  "gcpInstanceFilter": {
                    "$ref": "#/definitions/pipeline/stages/cd/GcpInstanceFilter"
                  },
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "hostConnectionType": {
                    "type": "string",
                    "enum": [
                      "PublicIP",
                      "PrivateIP"
                    ],
                    "minLength": 1
                  },
                  "project": {
                    "type": "string",
                    "minLength": 1
                  },
                  "sshMode": {
                    "type": "string",
                    "enum": [
                      "OSLogin"
                    ],
                    "minLength": 1
                  },
                  "zone": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "GCP infrastructure configuration for running scripts on virtual machines using a specified GCP connector, project, and instance filtering options."
              }
            }
          },
          "GcpInstanceFilter": {
            "title": "GcpInstanceFilter",
            "type": "object",
            "properties": {
              "labels": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for GcpInstanceFilter"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "TanzuApplicationServiceInfrastructure": {
            "title": "TanzuApplicationServiceInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "organization",
                  "space"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "organization": {
                    "type": "string"
                  },
                  "provisioner": {
                    "type": "string"
                  },
                  "space": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TanzuApplicationServiceInfrastructure"
              }
            }
          },
          "GoogleMigInfrastructure": {
            "title": "GoogleMigInfrastructure",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/steps/common/Infrastructure"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "project",
                  "region"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "project": {
                    "type": "string",
                    "minLength": 1
                  },
                  "region": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GoogleMigInfrastructure"
              }
            }
          },
          "InfraUseFromStage": {
            "title": "InfraUseFromStage",
            "type": "object",
            "required": [
              "stage"
            ],
            "properties": {
              "overrides": {
                "$ref": "#/definitions/pipeline/stages/cd/InfraOverrides"
              },
              "stage": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for InfraUseFromStage"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "InfraOverrides": {
            "title": "InfraOverrides",
            "type": "object",
            "properties": {
              "environment": {
                "$ref": "#/definitions/pipeline/stages/cd/EnvironmentYaml"
              },
              "infrastructureDefinition": {
                "$ref": "#/definitions/pipeline/stages/cd/InfrastructureDef"
              },
              "description": {
                "desc": "This is the description for InfraOverrides"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ServiceYamlV2": {
            "title": "ServiceYamlV2",
            "type": "object",
            "properties": {
              "serviceInputs": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/JsonNode"
                  },
                  {
                    "type": "string",
                    "pattern": "(^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$|^$)"
                  }
                ]
              },
              "serviceRef": {
                "type": "string",
                "pattern": "^(?=\\s*\\S).*$"
              },
              "gitBranch": {
                "type": "string"
              },
              "useFromStage": {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceUseFromStageV2"
              },
              "disableArtifactValidation": {
                "type": "boolean"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for ServiceYamlV2"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ServiceUseFromStageV2": {
            "title": "ServiceUseFromStageV2",
            "type": "object",
            "required": [
              "stage"
            ],
            "properties": {
              "metadata": {
                "type": "string"
              },
              "stage": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "description": {
                "desc": "This is the description for ServiceUseFromStageV2"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ServiceConfig": {
            "title": "ServiceConfig",
            "type": "object",
            "properties": {
              "service": {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceYaml"
              },
              "serviceDefinition": {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceDefinition"
              },
              "serviceRef": {
                "type": "string"
              },
              "stageOverrides": {
                "$ref": "#/definitions/pipeline/stages/cd/StageOverridesConfig"
              },
              "useFromStage": {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceUseFromStage"
              },
              "description": {
                "desc": "This is the description for ServiceConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "oneOf": [
                  {
                    "required": [
                      "useFromStage"
                    ]
                  },
                  {
                    "required": [
                      "service"
                    ]
                  },
                  {
                    "required": [
                      "serviceRef"
                    ]
                  }
                ]
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "useFromStage"
                    ]
                  },
                  {
                    "required": [
                      "serviceDefinition"
                    ]
                  }
                ]
              }
            ]
          },
          "ServiceYaml": {
            "title": "ServiceYaml",
            "type": "object",
            "required": [
              "identifier",
              "name"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ServiceYaml"
              },
              "identifier": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "tags": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ServiceDefinition": {
            "title": "ServiceDefinition",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Kubernetes",
                  "NativeHelm",
                  "Ssh",
                  "WinRm",
                  "ServerlessAwsLambda",
                  "AzureWebApp",
                  "AzureFunction",
                  "CustomDeployment",
                  "ECS",
                  "Elastigroup",
                  "TAS",
                  "Asg",
                  "GoogleCloudFunctions",
                  "AwsLambda",
                  "AWS_SAM",
                  "GoogleCloudRun",
                  "AzureContainerApps",
                  "Salesforce",
                  "GoogleManagedInstanceGroup"
                ]
              },
              "description": {
                "desc": "This is the description for ServiceDefinition"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AWS_SAM"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AwsSamServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudRun"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GoogleCloudRunServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureContainerApps"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AzureContainerAppsServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Salesforce"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/SalesforceServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Asg"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AsgServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AwsLambda"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AwsLambdaServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureWebApp"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AzureWebAppServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureFunction"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AzureFunctionServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CustomDeployment"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/CustomDeploymentServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ECS"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/EcsServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Elastigroup"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/ElastigroupServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudFunctions"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GoogleCloudFunctionsServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Kubernetes"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/KubernetesServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "NativeHelm"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/NativeHelmServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ServerlessAwsLambda"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/ServerlessAwsLambdaServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Ssh"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/SshServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "TAS"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/TanzuApplicationServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "WinRm"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/WinRmServiceSpec"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleManagedInstanceGroup"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GoogleMigServiceSpec"
                    }
                  }
                }
              }
            ]
          },
          "AwsSamServiceSpec": {
            "title": "AwsSamServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "properties": {}
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AwsSamServiceSpec"
              }
            }
          },
          "ServiceSpec": {
            "title": "ServiceSpec",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "artifacts": {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactListConfig"
              },
              "configFiles": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/cd/ConfigFileWrapper"
                }
              },
              "manifests": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/ManifestConfigWrapper"
                }
              },
              "variables": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/common/NGVariable"
                }
              },
              "description": {
                "desc": "This is the description for ServiceSpec"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ArtifactListConfig": {
            "title": "ArtifactListConfig",
            "type": "object",
            "properties": {
              "primary": {
                "$ref": "#/definitions/pipeline/stages/cd/PrimaryArtifact"
              },
              "sidecars": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/cd/SidecarArtifactWrapper"
                }
              },
              "description": {
                "desc": "This is the description for ArtifactListConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "PrimaryArtifact": {
            "title": "PrimaryArtifact",
            "type": "object",
            "properties": {
              "primaryArtifactRef": {
                "type": "string"
              },
              "sources": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/cd/ArtifactSource"
                }
              },
              "type": {
                "type": "string",
                "enum": [
                  "DockerRegistry",
                  "Gcr",
                  "Ecr",
                  "Nexus3Registry",
                  "Nexus2Registry",
                  "ArtifactoryRegistry",
                  "CustomArtifact",
                  "Acr",
                  "Jenkins",
                  "AmazonS3",
                  "GoogleArtifactRegistry",
                  "GithubPackageRegistry",
                  "AzureArtifacts",
                  "AmazonMachineImage",
                  "Bamboo",
                  "GoogleCloudStorage",
                  "GoogleCloudSource",
                  "GceImage",
                  "Har",
                  "SalesforcePackage",
                  "SalesforceOrg",
                  "SalesforceDxProject"
                ]
              },
              "description": {
                "desc": "This is the description for PrimaryArtifact"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Acr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AcrArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AmazonMachineImage"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AMIArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AmazonS3"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AmazonS3ArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ArtifactoryRegistry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/ArtifactoryRegistryArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureArtifacts"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AzureArtifactsConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Bamboo"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/BambooArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CustomArtifact"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/CustomArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DockerRegistry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/DockerHubArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Ecr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/EcrArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Gcr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GcrArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GithubPackageRegistry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GithubPackagesArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleArtifactRegistry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GoogleArtifactRegistryConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudSource"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GoogleCloudSourceArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudStorage"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GoogleCloudStorageArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GceImage"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GCEImageArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Jenkins"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/JenkinsArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Nexus2Registry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/Nexus2RegistryArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Nexus3Registry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/NexusRegistryArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Har"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/HarnessArtifactRegistryConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforcePackage"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/SalesforcePackageArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforceOrg"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/SalesforceOrgArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforceDxProject"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/SalesforceDxProjectArtifactConfig"
                    }
                  }
                }
              }
            ]
          },
          "ArtifactSource": {
            "title": "ArtifactSource",
            "type": "object",
            "required": [
              "identifier"
            ],
            "properties": {
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "metadata": {
                "type": "string"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "template": {
                "$ref": "#/definitions/pipeline/steps/custom/TemplateLinkConfig"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DockerRegistry",
                  "Gcr",
                  "Ecr",
                  "Nexus3Registry",
                  "Nexus2Registry",
                  "ArtifactoryRegistry",
                  "CustomArtifact",
                  "Acr",
                  "Jenkins",
                  "AmazonS3",
                  "GoogleArtifactRegistry",
                  "GithubPackageRegistry",
                  "AzureArtifacts",
                  "AmazonMachineImage",
                  "Bamboo",
                  "GoogleCloudStorage",
                  "GoogleCloudSource",
                  "GceImage",
                  "Har",
                  "SalesforcePackage",
                  "SalesforceOrg",
                  "SalesforceDxProject"
                ]
              },
              "description": {
                "desc": "This is the description for ArtifactSource"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Acr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AcrArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AmazonMachineImage"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AMIArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AmazonS3"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AmazonS3ArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ArtifactoryRegistry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/ArtifactoryRegistryArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureArtifacts"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AzureArtifactsConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Bamboo"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/BambooArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CustomArtifact"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/CustomArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DockerRegistry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/DockerHubArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Ecr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/EcrArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Gcr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GcrArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GithubPackageRegistry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GithubPackagesArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleArtifactRegistry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GoogleArtifactRegistryConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudSource"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GoogleCloudSourceArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudStorage"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GoogleCloudStorageArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GceImage"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GCEImageArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Jenkins"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/JenkinsArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Nexus2Registry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/Nexus2RegistryArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Nexus3Registry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/NexusRegistryArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforcePackage"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/SalesforcePackageArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforceOrg"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/SalesforceOrgArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforceDxProject"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/SalesforceDxProjectArtifactConfig"
                    }
                  }
                }
              }
            ]
          },
          "AcrArtifactConfig": {
            "title": "AcrArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "registry",
                  "repository",
                  "subscriptionId"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "digest": {
                    "type": "string"
                  },
                  "registry": {
                    "type": "string"
                  },
                  "repository": {
                    "type": "string"
                  },
                  "subscriptionId": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string"
                  },
                  "tagRegex": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "tagRegex"
                    ]
                  },
                  {
                    "required": [
                      "tag"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AcrArtifactConfig"
              }
            }
          },
          "ArtifactConfig": {
            "title": "ArtifactConfig",
            "type": "object",
            "discriminator": "type",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ArtifactConfig"
              }
            }
          },
          "AMIArtifactConfig": {
            "title": "AMIArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "region"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "filters": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/stages/cd/AMIFilter"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "region": {
                    "type": "string",
                    "minLength": 1
                  },
                  "tags": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/stages/cd/AMITag"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "version": {
                    "type": "string"
                  },
                  "versionRegex": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "versionRegex"
                    ]
                  },
                  {
                    "required": [
                      "version"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AMIArtifactConfig"
              }
            }
          },
          "AMIFilter": {
            "title": "AMIFilter",
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "value": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for AMIFilter"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "AMITag": {
            "title": "AMITag",
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "value": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for AMITag"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "AmazonS3ArtifactConfig": {
            "title": "AmazonS3ArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "bucketName",
                  "connectorRef"
                ],
                "properties": {
                  "bucketName": {
                    "type": "string",
                    "minLength": 1
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "fileFilter": {
                    "type": "string"
                  },
                  "filePath": {
                    "type": "string"
                  },
                  "filePathRegex": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "filePath"
                    ]
                  },
                  {
                    "required": [
                      "filePathRegex"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AmazonS3ArtifactConfig"
              }
            }
          },
          "ArtifactoryRegistryArtifactConfig": {
            "title": "ArtifactoryRegistryArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "repository",
                  "repositoryFormat"
                ],
                "properties": {
                  "artifactDirectory": {
                    "type": "string"
                  },
                  "artifactFilter": {
                    "type": "string"
                  },
                  "artifactPath": {
                    "type": "string"
                  },
                  "artifactPathFilter": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "digest": {
                    "type": "string"
                  },
                  "repository": {
                    "type": "string"
                  },
                  "repositoryFormat": {
                    "type": "string",
                    "enum": [
                      "docker",
                      "generic"
                    ]
                  },
                  "repositoryUrl": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string"
                  },
                  "tagRegex": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ArtifactoryRegistryArtifactConfig"
              }
            }
          },
          "AzureArtifactsConfig": {
            "title": "AzureArtifactsConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "feed",
                  "package",
                  "packageType",
                  "scope"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "feed": {
                    "type": "string",
                    "minLength": 1
                  },
                  "package": {
                    "type": "string",
                    "minLength": 1
                  },
                  "packageType": {
                    "type": "string",
                    "enum": [
                      "maven",
                      "nuget",
                      "upack"
                    ]
                  },
                  "project": {
                    "type": "string"
                  },
                  "scope": {
                    "type": "string",
                    "enum": [
                      "project",
                      "org"
                    ]
                  },
                  "version": {
                    "type": "string"
                  },
                  "versionRegex": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "versionRegex"
                    ]
                  },
                  {
                    "required": [
                      "version"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AzureArtifactsConfig"
              }
            }
          },
          "BambooArtifactConfig": {
            "title": "BambooArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "planKey"
                ],
                "properties": {
                  "artifactPaths": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "build": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "planKey": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for BambooArtifactConfig"
              }
            }
          },
          "CustomArtifactConfig": {
            "title": "CustomArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "version"
                ],
                "properties": {
                  "delegateSelectors": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "inputs": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                        },
                        {
                          "$ref": "#/definitions/pipeline/common/StringNGVariable"
                        }
                      ]
                    }
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "scripts": {
                    "$ref": "#/definitions/pipeline/stages/cd/CustomArtifactScripts"
                  },
                  "timeout": {
                    "type": "string",
                    "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(<\\+input>.*)|(.*<\\+.*>.*)|(^$))$"
                  },
                  "version": {
                    "type": "string"
                  },
                  "versionRegex": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CustomArtifactConfig"
              }
            }
          },
          "CustomArtifactScripts": {
            "title": "CustomArtifactScripts",
            "type": "object",
            "required": [
              "fetchAllArtifacts"
            ],
            "properties": {
              "fetchAllArtifacts": {
                "$ref": "#/definitions/pipeline/stages/cd/FetchAllArtifacts"
              },
              "description": {
                "desc": "This is the description for CustomArtifactScripts"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "FetchAllArtifacts": {
            "title": "FetchAllArtifacts",
            "type": "object",
            "required": [
              "spec"
            ],
            "properties": {
              "artifactsArrayPath": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldString"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "attributes": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "spec": {
                "$ref": "#/definitions/pipeline/stages/cd/CustomArtifactScriptInfo"
              },
              "versionPath": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldString"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for FetchAllArtifacts"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CustomArtifactScriptInfo": {
            "title": "CustomArtifactScriptInfo",
            "type": "object",
            "required": [
              "shell",
              "source"
            ],
            "properties": {
              "shell": {
                "type": "string",
                "enum": [
                  "Bash",
                  "PowerShell"
                ]
              },
              "source": {
                "$ref": "#/definitions/pipeline/stages/cd/CustomArtifactScriptSourceWrapper"
              },
              "description": {
                "desc": "This is the description for CustomArtifactScriptInfo"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CustomArtifactScriptSourceWrapper": {
            "title": "CustomArtifactScriptSourceWrapper",
            "type": "object",
            "required": [
              "spec",
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for CustomArtifactScriptSourceWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Inline"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/CustomScriptInlineSource"
                    }
                  }
                }
              }
            ]
          },
          "CustomScriptInlineSource": {
            "title": "CustomScriptInlineSource",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/CustomScriptBaseSource"
              },
              {
                "type": "object",
                "properties": {
                  "script": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CustomScriptInlineSource"
              }
            }
          },
          "CustomScriptBaseSource": {
            "title": "CustomScriptBaseSource",
            "type": "object",
            "discriminator": "type",
            "properties": {
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for CustomScriptBaseSource"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "DockerHubArtifactConfig": {
            "title": "DockerHubArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "imagePath"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "digest": {
                    "type": "string"
                  },
                  "imagePath": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string"
                  },
                  "tagRegex": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "tagRegex"
                    ]
                  },
                  {
                    "required": [
                      "tag"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for DockerHubArtifactConfig"
              }
            }
          },
          "EcrArtifactConfig": {
            "title": "EcrArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "imagePath",
                  "region"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "digest": {
                    "type": "string"
                  },
                  "imagePath": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  },
                  "registryId": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string"
                  },
                  "tagRegex": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "tagRegex"
                    ]
                  },
                  {
                    "required": [
                      "tag"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for EcrArtifactConfig"
              }
            }
          },
          "GcrArtifactConfig": {
            "title": "GcrArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "imagePath",
                  "registryHostname"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "digest": {
                    "type": "string"
                  },
                  "imagePath": {
                    "type": "string"
                  },
                  "registryHostname": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string"
                  },
                  "tagRegex": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "tagRegex"
                    ]
                  },
                  {
                    "required": [
                      "tag"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GcrArtifactConfig"
              }
            }
          },
          "GithubPackagesArtifactConfig": {
            "title": "GithubPackagesArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "packageName",
                  "packageType"
                ],
                "properties": {
                  "artifactId": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "digest": {
                    "type": "string"
                  },
                  "extension": {
                    "type": "string"
                  },
                  "groupId": {
                    "type": "string"
                  },
                  "org": {
                    "type": "string"
                  },
                  "packageName": {
                    "type": "string",
                    "minLength": 1
                  },
                  "packageType": {
                    "type": "string",
                    "enum": [
                      "npm",
                      "maven",
                      "rubygems",
                      "nuget",
                      "container"
                    ]
                  },
                  "user": {
                    "type": "string"
                  },
                  "version": {
                    "type": "string"
                  },
                  "versionRegex": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "versionRegex"
                    ]
                  },
                  {
                    "required": [
                      "version"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GithubPackagesArtifactConfig"
              }
            }
          },
          "GoogleArtifactRegistryConfig": {
            "title": "GoogleArtifactRegistryConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "package",
                  "project",
                  "region",
                  "repositoryName",
                  "repositoryType"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "digest": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "package": {
                    "type": "string"
                  },
                  "project": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  },
                  "repositoryName": {
                    "type": "string"
                  },
                  "repositoryType": {
                    "type": "string",
                    "enum": [
                      "docker"
                    ]
                  },
                  "version": {
                    "type": "string"
                  },
                  "versionRegex": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "versionRegex"
                    ]
                  },
                  {
                    "required": [
                      "version"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GoogleArtifactRegistryConfig"
              }
            }
          },
          "GoogleCloudSourceArtifactConfig": {
            "title": "GoogleCloudSourceArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "fetchType",
                  "project",
                  "repository",
                  "sourceDirectory"
                ],
                "properties": {
                  "branch": {
                    "type": "string"
                  },
                  "commitId": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "fetchType": {
                    "type": "string",
                    "enum": [
                      "Branch",
                      "Commit",
                      "Tag"
                    ]
                  },
                  "project": {
                    "type": "string"
                  },
                  "repository": {
                    "type": "string"
                  },
                  "sourceDirectory": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GoogleCloudSourceArtifactConfig"
              }
            }
          },
          "GoogleCloudStorageArtifactConfig": {
            "title": "GoogleCloudStorageArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "artifactPath",
                  "bucket",
                  "connectorRef",
                  "project"
                ],
                "properties": {
                  "artifactPath": {
                    "type": "string"
                  },
                  "bucket": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "project": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GoogleCloudStorageArtifactConfig"
              }
            }
          },
          "GCEImageArtifactConfig": {
            "title": "GCEImageArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "project"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string",
                    "minLength": 1
                  },
                  "filters": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/stages/cd/GCEImageFilter"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "labels": {
                    "oneOf": [
                      {
                        "type": "array",
                        "items": {
                          "$ref": "#/definitions/pipeline/stages/cd/GCEImageLabel"
                        }
                      },
                      {
                        "type": "string",
                        "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                        "minLength": 1
                      }
                    ]
                  },
                  "project": {
                    "type": "string",
                    "minLength": 1
                  },
                  "version": {
                    "type": "string"
                  },
                  "versionRegex": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "versionRegex"
                    ]
                  },
                  {
                    "required": [
                      "version"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GCEImageArtifactConfig"
              }
            }
          },
          "GCEImageFilter": {
            "title": "GCEImageFilter",
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "GCEImageLabel": {
            "title": "GCEImageLabel",
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "JenkinsArtifactConfig": {
            "title": "JenkinsArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "jobName"
                ],
                "properties": {
                  "artifactPath": {
                    "type": "string"
                  },
                  "build": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "jobName": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for JenkinsArtifactConfig"
              }
            }
          },
          "Nexus2RegistryArtifactConfig": {
            "title": "Nexus2RegistryArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "repository",
                  "repositoryFormat"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "repository": {
                    "type": "string"
                  },
                  "repositoryFormat": {
                    "type": "string",
                    "enum": [
                      "maven",
                      "npm",
                      "nuget"
                    ]
                  },
                  "tag": {
                    "type": "string"
                  },
                  "tagRegex": {
                    "type": "string"
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "repositoryFormat": {
                      "const": "docker"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/NexusRegistryDockerConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "repositoryFormat": {
                      "const": "maven"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/NexusRegistryMavenConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "repositoryFormat": {
                      "const": "npm"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/NexusRegistryNpmConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "repositoryFormat": {
                      "const": "nuget"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/NexusRegistryNugetConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "repositoryFormat": {
                      "const": "raw"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/NexusRegistryRawConfig"
                    }
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "tagRegex"
                    ]
                  },
                  {
                    "required": [
                      "tag"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for Nexus2RegistryArtifactConfig"
              }
            }
          },
          "NexusRegistryDockerConfig": {
            "title": "NexusRegistryDockerConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/NexusRegistryConfigSpec"
              },
              {
                "type": "object",
                "required": [
                  "artifactPath"
                ],
                "properties": {
                  "artifactPath": {
                    "type": "string"
                  },
                  "repositoryPort": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "integer"
                      }
                    ]
                  },
                  "repositoryUrl": {
                    "type": "string"
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "repositoryPort"
                    ]
                  },
                  {
                    "required": [
                      "repositoryUrl"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for NexusRegistryDockerConfig"
              }
            }
          },
          "NexusRegistryConfigSpec": {
            "title": "NexusRegistryConfigSpec",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for NexusRegistryConfigSpec"
              }
            }
          },
          "NexusRegistryMavenConfig": {
            "title": "NexusRegistryMavenConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/NexusRegistryConfigSpec"
              },
              {
                "type": "object",
                "required": [
                  "artifactId",
                  "groupId"
                ],
                "properties": {
                  "artifactId": {
                    "type": "string"
                  },
                  "classifier": {
                    "type": "string"
                  },
                  "extension": {
                    "type": "string"
                  },
                  "groupId": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for NexusRegistryMavenConfig"
              }
            }
          },
          "NexusRegistryNpmConfig": {
            "title": "NexusRegistryNpmConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/NexusRegistryConfigSpec"
              },
              {
                "type": "object",
                "required": [
                  "packageName"
                ],
                "properties": {
                  "packageName": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for NexusRegistryNpmConfig"
              }
            }
          },
          "NexusRegistryNugetConfig": {
            "title": "NexusRegistryNugetConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/NexusRegistryConfigSpec"
              },
              {
                "type": "object",
                "required": [
                  "packageName"
                ],
                "properties": {
                  "packageName": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for NexusRegistryNugetConfig"
              }
            }
          },
          "NexusRegistryRawConfig": {
            "title": "NexusRegistryRawConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/NexusRegistryConfigSpec"
              },
              {
                "type": "object",
                "required": [
                  "group"
                ],
                "properties": {
                  "group": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for NexusRegistryRawConfig"
              }
            }
          },
          "NexusRegistryArtifactConfig": {
            "title": "NexusRegistryArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "repository",
                  "repositoryFormat"
                ],
                "properties": {
                  "artifactPath": {
                    "type": "string"
                  },
                  "connectorRef": {
                    "type": "string"
                  },
                  "digest": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  },
                  "repository": {
                    "type": "string"
                  },
                  "repositoryFormat": {
                    "type": "string",
                    "enum": [
                      "docker",
                      "maven",
                      "npm",
                      "nuget",
                      "raw"
                    ]
                  },
                  "repositoryPort": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "integer"
                      }
                    ]
                  },
                  "repositoryUrl": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string"
                  },
                  "tagRegex": {
                    "type": "string"
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "repositoryFormat": {
                      "const": "docker"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/NexusRegistryDockerConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "repositoryFormat": {
                      "const": "maven"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/NexusRegistryMavenConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "repositoryFormat": {
                      "const": "npm"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/NexusRegistryNpmConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "repositoryFormat": {
                      "const": "nuget"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/NexusRegistryNugetConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "repositoryFormat": {
                      "const": "raw"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/NexusRegistryRawConfig"
                    }
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "tagRegex"
                    ]
                  },
                  {
                    "required": [
                      "tag"
                    ]
                  }
                ]
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for NexusRegistryArtifactConfig"
              }
            }
          },
          "SalesforcePackageArtifactConfig": {
            "title": "SalesforcePackageArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "packageId": {
                    "type": "string"
                  },
                  "installationKeyRef": {
                    "type": "string"
                  },
                  "packageVersionId": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for SalesforcePackageArtifactConfig"
              }
            }
          },
          "SalesforceOrgArtifactConfig": {
            "title": "SalesforceOrgArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "connectorRef",
                  "metadataConfigurationType"
                ],
                "properties": {
                  "connectorRef": {
                    "type": "string"
                  },
                  "metadataConfigurationType": {
                    "type": "string"
                  },
                  "metadatas": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "sourcePaths": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "manifestStore": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for SalesforceOrgArtifactConfig"
              }
            }
          },
          "SalesforceDxProjectArtifactConfig": {
            "title": "SalesforceDxProjectArtifactConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "metadataStore",
                  "metadataConfigurationType"
                ],
                "properties": {
                  "metadataStore": {
                    "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
                  },
                  "metadataConfigurationType": {
                    "type": "string"
                  },
                  "metadatas": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "sourcePaths": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "manifestPath": {
                    "type": "string"
                  },
                  "destructiveChangesPath": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for SalesforceDxProjectArtifactConfig"
              }
            }
          },
          "HarnessArtifactRegistryConfig": {
            "title": "HarnessArtifactRegistryConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactConfig"
              },
              {
                "type": "object",
                "required": [
                  "registryRef",
                  "type"
                ],
                "properties": {
                  "registryRef": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "docker"
                    ]
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "docker"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/HarnessRegistryDockerConfig"
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for HarnessArtifactRegistryConfig"
              }
            }
          },
          "HarnessRegistryDockerConfig": {
            "title": "HarnessRegistryDockerConfig",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/HarnessRegistryConfigSpec"
              },
              {
                "type": "object"
              },
              {
                "required": [
                  "tag",
                  "imagePath"
                ],
                "properties": {
                  "imagePath": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string"
                  },
                  "digest": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for HarnessRegistryDockerConfig"
              }
            }
          },
          "HarnessRegistryConfigSpec": {
            "title": "HarnessRegistryConfigSpec",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for HarnessRegistryConfigSpec"
              }
            }
          },
          "SidecarArtifactWrapper": {
            "title": "SidecarArtifactWrapper",
            "type": "object",
            "properties": {
              "sidecar": {
                "$ref": "#/definitions/pipeline/stages/cd/SidecarArtifact"
              },
              "description": {
                "desc": "This is the description for SidecarArtifactWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "SidecarArtifact": {
            "title": "SidecarArtifact",
            "type": "object",
            "required": [
              "identifier"
            ],
            "properties": {
              "identifier": {
                "type": "string"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "template": {
                "$ref": "#/definitions/pipeline/steps/custom/TemplateLinkConfig"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DockerRegistry",
                  "Gcr",
                  "Ecr",
                  "Nexus3Registry",
                  "Nexus2Registry",
                  "ArtifactoryRegistry",
                  "CustomArtifact",
                  "Acr",
                  "Jenkins",
                  "AmazonS3",
                  "GoogleArtifactRegistry",
                  "GithubPackageRegistry",
                  "AzureArtifacts",
                  "AmazonMachineImage",
                  "Bamboo",
                  "GoogleCloudStorage",
                  "GoogleCloudSource",
                  "GceImage",
                  "Har",
                  "SalesforcePackage",
                  "SalesforceOrg",
                  "SalesforceDxProject"
                ]
              },
              "description": {
                "desc": "This is the description for SidecarArtifact"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Acr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AcrArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AmazonMachineImage"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AMIArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AmazonS3"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AmazonS3ArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "ArtifactoryRegistry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/ArtifactoryRegistryArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "AzureArtifacts"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/AzureArtifactsConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Bamboo"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/BambooArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CustomArtifact"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/CustomArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DockerRegistry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/DockerHubArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Ecr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/EcrArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Gcr"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GcrArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GithubPackageRegistry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GithubPackagesArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleArtifactRegistry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GoogleArtifactRegistryConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudSource"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GoogleCloudSourceArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GoogleCloudStorage"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GoogleCloudStorageArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "GceImage"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/GCEImageArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Jenkins"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/JenkinsArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Nexus2Registry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/Nexus2RegistryArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Nexus3Registry"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/NexusRegistryArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Har"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/HarnessArtifactRegistryConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforcePackage"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/SalesforcePackageArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforceOrg"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/SalesforceOrgArtifactConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SalesforceDxProject"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cd/SalesforceDxProjectArtifactConfig"
                    }
                  }
                }
              },
              {
                "oneOf": [
                  {
                    "required": [
                      "template"
                    ]
                  },
                  {
                    "required": [
                      "spec"
                    ]
                  }
                ]
              }
            ]
          },
          "ConfigFileWrapper": {
            "title": "ConfigFileWrapper",
            "type": "object",
            "properties": {
              "configFile": {
                "$ref": "#/definitions/pipeline/stages/cd/ConfigFile"
              },
              "description": {
                "desc": "This is the description for ConfigFileWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ConfigFile": {
            "title": "ConfigFile",
            "type": "object",
            "required": [
              "identifier",
              "spec"
            ],
            "properties": {
              "identifier": {
                "type": "string"
              },
              "spec": {
                "$ref": "#/definitions/pipeline/stages/cd/ConfigFileAttributes"
              },
              "description": {
                "desc": "This is the description for ConfigFile"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ConfigFileAttributes": {
            "title": "ConfigFileAttributes",
            "type": "object",
            "required": [
              "store"
            ],
            "properties": {
              "configFileAttributeStepParameters": {
                "$ref": "#/definitions/pipeline/stages/cd/ConfigFileAttributeStepParameters"
              },
              "store": {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
              },
              "description": {
                "desc": "This is the description for ConfigFileAttributes"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ConfigFileAttributeStepParameters": {
            "title": "ConfigFileAttributeStepParameters",
            "type": "object",
            "properties": {
              "store": {
                "$ref": "#/definitions/pipeline/stages/cd/StoreConfigWrapperParameters"
              },
              "description": {
                "desc": "This is the description for ConfigFileAttributeStepParameters"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "StoreConfigWrapperParameters": {
            "title": "StoreConfigWrapperParameters",
            "type": "object",
            "properties": {
              "spec": {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfig"
              },
              "type": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for StoreConfigWrapperParameters"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "GoogleCloudRunServiceSpec": {
            "title": "GoogleCloudRunServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "properties": {}
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GoogleCloudRunServiceSpec"
              }
            }
          },
          "AzureContainerAppsServiceSpec": {
            "title": "AzureContainerAppsServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "properties": {}
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AzureContainerAppsServiceSpec"
              }
            }
          },
          "SalesforceServiceSpec": {
            "title": "SalesforceServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "properties": {}
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for SalesforceServiceSpec"
              }
            }
          },
          "AsgServiceSpec": {
            "title": "AsgServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "properties": {
                  "userData": {
                    "$ref": "#/definitions/pipeline/stages/cd/UserDataConfiguration"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AsgServiceSpec"
              }
            }
          },
          "UserDataConfiguration": {
            "title": "UserDataConfiguration",
            "type": "object",
            "required": [
              "store"
            ],
            "properties": {
              "metadata": {
                "type": "string"
              },
              "store": {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
              },
              "description": {
                "desc": "This is the description for UserDataConfiguration"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "AwsLambdaServiceSpec": {
            "title": "AwsLambdaServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "properties": {}
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AwsLambdaServiceSpec"
              }
            }
          },
          "AzureWebAppServiceSpec": {
            "title": "AzureWebAppServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "properties": {
                  "applicationSettings": {
                    "$ref": "#/definitions/pipeline/stages/cd/ApplicationSettingsConfiguration"
                  },
                  "connectionStrings": {
                    "$ref": "#/definitions/pipeline/stages/cd/ConnectionStringsConfiguration"
                  },
                  "startupCommand": {
                    "$ref": "#/definitions/pipeline/stages/cd/StartupCommandConfiguration"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AzureWebAppServiceSpec"
              }
            }
          },
          "ApplicationSettingsConfiguration": {
            "title": "ApplicationSettingsConfiguration",
            "type": "object",
            "required": [
              "store"
            ],
            "properties": {
              "metadata": {
                "type": "string"
              },
              "store": {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
              },
              "description": {
                "desc": "This is the description for ApplicationSettingsConfiguration"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ConnectionStringsConfiguration": {
            "title": "ConnectionStringsConfiguration",
            "type": "object",
            "required": [
              "store"
            ],
            "properties": {
              "metadata": {
                "type": "string"
              },
              "store": {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
              },
              "description": {
                "desc": "This is the description for ConnectionStringsConfiguration"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "StartupCommandConfiguration": {
            "title": "StartupCommandConfiguration",
            "type": "object",
            "required": [
              "store"
            ],
            "properties": {
              "metadata": {
                "type": "string"
              },
              "store": {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
              },
              "description": {
                "desc": "This is the description for StartupCommandConfiguration"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "AzureFunctionServiceSpec": {
            "title": "AzureFunctionServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "properties": null
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AzureFunctionServiceSpec"
              }
            }
          },
          "CustomDeploymentServiceSpec": {
            "title": "CustomDeploymentServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "required": [
                  "customDeploymentRef"
                ],
                "properties": {
                  "customDeploymentRef": {
                    "minLength": 1,
                    "$ref": "#/definitions/pipeline/stages/cd/StepTemplateRef"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CustomDeploymentServiceSpec"
              }
            }
          },
          "EcsServiceSpec": {
            "title": "EcsServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "properties": {
                  "ecsTaskDefinitionArn": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for EcsServiceSpec"
              }
            }
          },
          "ElastigroupServiceSpec": {
            "title": "ElastigroupServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "properties": {
                  "startupScript": {
                    "$ref": "#/definitions/pipeline/stages/cd/StartupScriptConfiguration"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ElastigroupServiceSpec"
              }
            }
          },
          "StartupScriptConfiguration": {
            "title": "StartupScriptConfiguration",
            "type": "object",
            "required": [
              "store"
            ],
            "properties": {
              "metadata": {
                "type": "string"
              },
              "store": {
                "$ref": "#/definitions/pipeline/steps/cd/StoreConfigWrapper"
              },
              "description": {
                "desc": "This is the description for StartupScriptConfiguration"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "GoogleCloudFunctionsServiceSpec": {
            "title": "GoogleCloudFunctionsServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "properties": {
                  "environmentType": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GoogleCloudFunctionsServiceSpec"
              }
            }
          },
          "KubernetesServiceSpec": {
            "title": "KubernetesServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "properties": {
                  "hooks": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/cd/ServiceHookWrapper"
                    }
                  },
                  "manifestConfigurations": {
                    "$ref": "#/definitions/pipeline/stages/cd/ManifestConfigurations"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for KubernetesServiceSpec"
              }
            }
          },
          "ServiceHookWrapper": {
            "title": "ServiceHookWrapper",
            "type": "object",
            "properties": {
              "postHook": {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceHook"
              },
              "preHook": {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceHook"
              },
              "description": {
                "desc": "This is the description for ServiceHookWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "oneOf": [
                  {
                    "required": [
                      "preHook"
                    ]
                  },
                  {
                    "required": [
                      "postHook"
                    ]
                  }
                ]
              }
            ]
          },
          "ServiceHook": {
            "title": "ServiceHook",
            "type": "object",
            "required": [
              "identifier",
              "store",
              "storeType"
            ],
            "properties": {
              "actions": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "FetchFiles",
                    "TemplateManifest",
                    "SteadyStateCheck"
                  ]
                }
              },
              "identifier": {
                "type": "string"
              },
              "storeType": {
                "type": "string",
                "enum": [
                  "Inline"
                ]
              },
              "description": {
                "desc": "This is the description for ServiceHook"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "storeType": {
                      "const": "Artifactory"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "store": {
                      "$ref": "#/definitions/pipeline/steps/cd/ArtifactoryStoreConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "storeType": {
                      "const": "AzureRepo"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "store": {
                      "$ref": "#/definitions/pipeline/steps/cd/AzureRepoStore"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "storeType": {
                      "const": "Bitbucket"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "store": {
                      "$ref": "#/definitions/pipeline/steps/cd/BitbucketStore"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "storeType": {
                      "const": "CustomRemote"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "store": {
                      "$ref": "#/definitions/pipeline/steps/cd/CustomRemoteStoreConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "storeType": {
                      "const": "Gcs"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "store": {
                      "$ref": "#/definitions/pipeline/steps/cd/GcsStoreConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "storeType": {
                      "const": "Git"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "store": {
                      "$ref": "#/definitions/pipeline/steps/cd/GitStore"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "storeType": {
                      "const": "GitLab"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "store": {
                      "$ref": "#/definitions/pipeline/steps/cd/GitLabStore"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "storeType": {
                      "const": "Github"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "store": {
                      "$ref": "#/definitions/pipeline/steps/cd/GithubStore"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "storeType": {
                      "const": "Harness"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "store": {
                      "$ref": "#/definitions/pipeline/steps/custom/HarnessStore"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "storeType": {
                      "const": "Http"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "store": {
                      "$ref": "#/definitions/pipeline/steps/cd/HttpStoreConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "storeType": {
                      "const": "InheritFromManifest"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "store": {
                      "$ref": "#/definitions/pipeline/steps/cd/InheritFromManifestStoreConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "storeType": {
                      "const": "Inline"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "store": {
                      "$ref": "#/definitions/pipeline/steps/cd/InlineStoreConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "storeType": {
                      "const": "OciHelmChart"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "store": {
                      "$ref": "#/definitions/pipeline/steps/cd/OciHelmChartConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "storeType": {
                      "const": "S3"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "store": {
                      "$ref": "#/definitions/pipeline/steps/cd/S3StoreConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "storeType": {
                      "const": "S3Url"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "store": {
                      "$ref": "#/definitions/pipeline/steps/cd/S3UrlStoreConfig"
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "HarnessCode"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/steps/cd/HarnessCodeStore"
                    }
                  }
                }
              }
            ]
          },
          "ManifestConfigurations": {
            "title": "ManifestConfigurations",
            "type": "object",
            "properties": {
              "primaryManifestRef": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ManifestConfigurations"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "NativeHelmServiceSpec": {
            "title": "NativeHelmServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "properties": {
                  "hooks": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/cd/ServiceHookWrapper"
                    }
                  },
                  "manifestConfigurations": {
                    "$ref": "#/definitions/pipeline/stages/cd/ManifestConfigurations"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for NativeHelmServiceSpec"
              }
            }
          },
          "ServerlessAwsLambdaServiceSpec": {
            "title": "ServerlessAwsLambdaServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "properties": {
                  "pluginInfo": {
                    "$ref": "#/definitions/pipeline/stages/cd/ServerlessAwsLambdaPluginInfo"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ServerlessAwsLambdaServiceSpec"
              }
            }
          },
          "ServerlessAwsLambdaPluginInfo": {
            "title": "ServerlessAwsLambdaPluginInfo",
            "type": "object",
            "properties": {
              "runtimeLanguage": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldString"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "serverlessVersion": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldString"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "os": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldString"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "arch": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ParameterFieldString"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for ServerlessAwsLambdaPluginInfo"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "SshServiceSpec": {
            "title": "SshServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "properties": {}
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for SshServiceSpec"
              }
            }
          },
          "TanzuApplicationServiceSpec": {
            "title": "TanzuApplicationServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "properties": {}
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TanzuApplicationServiceSpec"
              }
            }
          },
          "WinRmServiceSpec": {
            "title": "WinRmServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "properties": {
                  "artifactOverrideSets": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/cd/ArtifactOverrideSetWrapper"
                    }
                  },
                  "configFileOverrideSets": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/cd/ConfigFileOverrideSetWrapper"
                    }
                  },
                  "manifestOverrideSets": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/cd/ManifestOverrideSetWrapper"
                    }
                  },
                  "variableOverrideSets": {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/cd/NGVariableOverrideSetWrapper"
                    }
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for WinRmServiceSpec"
              }
            }
          },
          "ArtifactOverrideSetWrapper": {
            "title": "ArtifactOverrideSetWrapper",
            "type": "object",
            "properties": {
              "overrideSet": {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactOverrideSets"
              },
              "description": {
                "desc": "This is the description for ArtifactOverrideSetWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ArtifactOverrideSets": {
            "title": "ArtifactOverrideSets",
            "type": "object",
            "properties": {
              "artifacts": {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactListConfig"
              },
              "identifier": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ArtifactOverrideSets"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ConfigFileOverrideSetWrapper": {
            "title": "ConfigFileOverrideSetWrapper",
            "type": "object",
            "properties": {
              "overrideSet": {
                "$ref": "#/definitions/pipeline/stages/cd/ConfigFileOverrideSets"
              },
              "description": {
                "desc": "This is the description for ConfigFileOverrideSetWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ConfigFileOverrideSets": {
            "title": "ConfigFileOverrideSets",
            "type": "object",
            "properties": {
              "configFiles": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/cd/ConfigFileWrapper"
                }
              },
              "identifier": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ConfigFileOverrideSets"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ManifestOverrideSetWrapper": {
            "title": "ManifestOverrideSetWrapper",
            "type": "object",
            "properties": {
              "overrideSet": {
                "$ref": "#/definitions/pipeline/stages/cd/ManifestOverrideSets"
              },
              "description": {
                "desc": "This is the description for ManifestOverrideSetWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ManifestOverrideSets": {
            "title": "ManifestOverrideSets",
            "type": "object",
            "properties": {
              "identifier": {
                "type": "string"
              },
              "manifests": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/ManifestConfigWrapper"
                }
              },
              "description": {
                "desc": "This is the description for ManifestOverrideSets"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "NGVariableOverrideSetWrapper": {
            "title": "NGVariableOverrideSetWrapper",
            "type": "object",
            "properties": {
              "overrideSet": {
                "$ref": "#/definitions/pipeline/stages/cd/NGVariableOverrideSets"
              },
              "description": {
                "desc": "This is the description for NGVariableOverrideSetWrapper"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "NGVariableOverrideSets": {
            "title": "NGVariableOverrideSets",
            "type": "object",
            "properties": {
              "identifier": {
                "type": "string"
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "description": {
                "desc": "This is the description for NGVariableOverrideSets"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "GoogleMigServiceSpec": {
            "title": "GoogleMigServiceSpec",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceSpec"
              },
              {
                "type": "object",
                "properties": {}
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GoogleMigServiceSpec"
              }
            }
          },
          "StageOverridesConfig": {
            "title": "StageOverridesConfig",
            "type": "object",
            "properties": {
              "artifacts": {
                "$ref": "#/definitions/pipeline/stages/cd/ArtifactListConfig"
              },
              "configFiles": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/cd/ConfigFileWrapper"
                }
              },
              "manifests": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/steps/cd/ManifestConfigWrapper"
                }
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "description": {
                "desc": "This is the description for StageOverridesConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ServiceUseFromStage": {
            "title": "ServiceUseFromStage",
            "type": "object",
            "required": [
              "stage"
            ],
            "properties": {
              "metadata": {
                "type": "string"
              },
              "overrides": {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceOverrides"
              },
              "stage": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for ServiceUseFromStage"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ServiceOverrides": {
            "title": "ServiceOverrides",
            "type": "object",
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for ServiceOverrides"
              },
              "name": {
                "type": "string"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ServicesYaml": {
            "title": "ServicesYaml",
            "type": "object",
            "properties": {
              "metadata": {
                "$ref": "#/definitions/pipeline/stages/cd/ServicesMetadata"
              },
              "useFromStage": {
                "$ref": "#/definitions/pipeline/stages/cd/ServiceUseFromStageV2"
              },
              "values": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/cd/ServiceYamlV2"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "disableArtifactValidation": {
                "type": "boolean"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for ServicesYaml"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ServicesMetadata": {
            "title": "ServicesMetadata",
            "type": "object",
            "properties": {
              "parallel": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for ServicesMetadata"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "MultiDeploymentConfig": {
            "title": "MultiDeploymentConfig",
            "type": "object",
            "description": "Optional configuration for multiple service environment deployment.",
            "properties": {
              "onFailure": {
                "$ref": "#/definitions/pipeline/common/StrategyOnFailureType"
              },
              "when": {
                "type": "string",
                "pattern": "^(?!<\\+input>.*\\.executionInput\\(\\)(.*)$)"
              },
              "maxConcurrency": {
                "oneOf": [
                  {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "AwsSamDeploymentMetaData": {
            "title": "AwsSamDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AwsSamDeploymentMetaData"
              }
            }
          },
          "DeploymentMetaData": {
            "title": "DeploymentMetaData",
            "type": "object",
            "discriminator": "deploymentType",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for DeploymentMetaData"
              }
            }
          },
          "GoogleCloudRunDeploymentMetaData": {
            "title": "GoogleCloudRunDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GoogleCloudRunDeploymentMetaData"
              }
            }
          },
          "AzureContainerAppsDeploymentMetaData": {
            "title": "AzureContainerAppsDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AzureContainerAppsDeploymentMetaData"
              }
            }
          },
          "SalesforceDeploymentMetaData": {
            "title": "SalesforceDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for SalesforceDeploymentMetaData"
              }
            }
          },
          "AsgDeploymentMetaData": {
            "title": "AsgDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AsgDeploymentMetaData"
              }
            }
          },
          "AwsLambdaDeploymentMetaData": {
            "title": "AwsLambdaDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AwsLambdaDeploymentMetaData"
              }
            }
          },
          "AzureWebAppDeploymentMetaData": {
            "title": "AzureWebAppDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AzureWebAppDeploymentMetaData"
              }
            }
          },
          "AzureFunctionDeploymentMetaData": {
            "title": "AzureFunctionDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AzureFunctionDeploymentMetaData"
              }
            }
          },
          "CustomDeploymentMetaData": {
            "title": "CustomDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for CustomDeploymentMetaData"
              }
            }
          },
          "EcsDeploymentMetaData": {
            "title": "EcsDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for EcsDeploymentMetaData"
              }
            }
          },
          "ElastiGroupDeploymentMetaData": {
            "title": "ElastiGroupDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ElastiGroupDeploymentMetaData"
              }
            }
          },
          "GoogleCloudFunctionDeploymentMetaData": {
            "title": "GoogleCloudFunctionDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object",
                "properties": {
                  "environmentType": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  }
                }
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GoogleCloudFunctionDeploymentMetaData"
              }
            }
          },
          "KubernetesDeploymentMetaData": {
            "title": "KubernetesDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for KubernetesDeploymentMetaData"
              }
            }
          },
          "NativeHelmDeploymentMetaData": {
            "title": "NativeHelmDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for NativeHelmDeploymentMetaData"
              }
            }
          },
          "ServerlessAwsLambdaDeploymentMetaData": {
            "title": "ServerlessAwsLambdaDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ServerlessAwsLambdaDeploymentMetaData"
              }
            }
          },
          "SshDeploymentMetaData": {
            "title": "SshDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for SshDeploymentMetaData"
              }
            }
          },
          "TasDeploymentMetaData": {
            "title": "TasDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for TasDeploymentMetaData"
              }
            }
          },
          "WinrmDeploymentMetaData": {
            "title": "WinrmDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for WinrmDeploymentMetaData"
              }
            }
          },
          "GoogleMigDeploymentMetaData": {
            "title": "GoogleMigDeploymentMetaData",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/stages/cd/DeploymentMetaData"
              },
              {
                "type": "object"
              }
            ],
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for GoogleMigDeploymentMetaData"
              }
            }
          }
        },
        "security": {
          "SecurityStageNode": {
            "title": "SecurityStageNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "type": "string",
                "desc": "This is the description for SecurityStageNode"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "tags": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "type": {
                "type": "string",
                "enum": [
                  "SecurityTests"
                ]
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/StageWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "runMode": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/RunModeConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "SecurityTests"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/security/SecurityStageConfigImpl"
                    }
                  }
                }
              }
            ]
          },
          "SecurityStageConfigImpl": {
            "title": "SecurityStageConfigImpl",
            "type": "object",
            "properties": {
              "cloneCodebase": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "execution": {
                "$ref": "#/definitions/pipeline/stages/security/ExecutionElementConfig"
              },
              "infrastructure": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DockerInfraYaml"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/HostedVmInfraYaml"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/K8sDirectInfraYaml"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/UseFromStageInfraYaml"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/VmInfraYaml"
                  }
                ]
              },
              "platform": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/Platform"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "runtime": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CloudRuntime"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DockerRuntime"
                  }
                ]
              },
              "serviceDependencies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/common/DependencyElement"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "sharedPaths": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for SecurityStageConfigImpl"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ExecutionElementConfig": {
            "title": "ExecutionElementConfig",
            "type": "object",
            "required": [
              "steps"
            ],
            "properties": {
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/security/ExecutionWrapperConfig"
                },
                "maxItems": 2147483647,
                "minItems": 1
              },
              "description": {
                "desc": "This is the description for ExecutionElementConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ExecutionWrapperConfig": {
            "title": "ExecutionWrapperConfig",
            "type": "object",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/ExecutionWrapperValidation"
              }
            ],
            "properties": {
              "parallel": {
                "$ref": "#/definitions/pipeline/stages/security/ParallelStepElementConfig"
              },
              "insert": {
                "$ref": "#/definitions/pipeline/stages/security/InsertStepsNode"
              },
              "step": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepElementConfig"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ActionStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AgentStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AnchoreScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AquaSecurityScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AquaTrivyScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsEcrScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsSecurityHubScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/BackgroundStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/BanditScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/BlackDuckScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/BrakemanScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/BurpScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CheckmarxScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CheckmarxOneScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CheckovScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ClairScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CodeqlScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CoverityScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CustomIngestScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DataTheoremScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DockerContentTrustScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/FortifyOnDemandScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/FossaScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/GitCloneStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/GitHubAdvancedSecurityScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/GitleaksScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/GrypeScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/JfrogXrayScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/MendScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/MetasploitScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/NessusScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/NexusIQScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/NiktoScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/NmapScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/OpenvasScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/OsvScannerScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/OwaspScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/PluginStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/PrismaCloudScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ProwlerScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/QualysScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ReapsawScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/RunStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SecurityNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SemgrepScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ShiftLeftScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SniperScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SnykScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SonarqubeScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SysdigScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/TenableScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/TraceableScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/VeracodeScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ZapScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/PolicyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/TemplateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/WizScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CortexCloudScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ModelScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SscaEnforcementStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SscaOrchestrationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SscaComplianceStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ArtifactSigningStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ArtifactVerificationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SlsaVerificationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SastScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ScaScanNode"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for ExecutionWrapperConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ParallelStepElementConfig": {
            "title": "ParallelStepElementConfig",
            "type": "array",
            "items": {
              "$ref": "#/definitions/pipeline/stages/security/ExecutionWrapperConfig"
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ParallelStepElementConfig"
              }
            }
          },
          "InsertStepsNode": {
            "title": "InsertStepsNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "steps"
            ],
            "properties": {
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "steps": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/security/ExecutionWrapperConfig"
                    },
                    "maxItems": 2147483647,
                    "minItems": 1
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  },
                  {
                    "type": "string",
                    "pattern": "^[\\s]*$"
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          }
        },
        "ci": {
          "IntegrationStageNode": {
            "title": "IntegrationStageNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "type": "string",
                "desc": "This is the description for IntegrationStageNode"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "pipelineVariables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "tags": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "type": {
                "type": "string",
                "enum": [
                  "CI"
                ]
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/StageWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "runMode": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/RunModeConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "CI"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/ci/IntegrationStageConfigImpl"
                    }
                  }
                }
              }
            ]
          },
          "IntegrationStageConfigImpl": {
            "title": "IntegrationStageConfigImpl",
            "type": "object",
            "properties": {
              "caching": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/stages/ci/Caching"
                  }
                ]
              },
              "buildIntelligence": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/stages/ci/BuildIntelligence"
                  }
                ]
              },
              "cloneCodebase": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "execution": {
                "$ref": "#/definitions/pipeline/stages/ci/ExecutionElementConfig"
              },
              "infrastructure": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DockerInfraYaml"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/HostedVmInfraYaml"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/K8sDirectInfraYaml"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/UseFromStageInfraYaml"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/VmInfraYaml"
                  }
                ]
              },
              "platform": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/Platform"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "runtime": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CloudRuntime"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DockerRuntime"
                  }
                ]
              },
              "serviceDependencies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/common/DependencyElement"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "sharedPaths": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "slsa_provenance": {
                "$ref": "#/definitions/pipeline/stages/ci/SlsaConfig"
              },
              "description": {
                "desc": "This is the description for IntegrationStageConfigImpl"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "Caching": {
            "title": "Caching",
            "type": "object",
            "properties": {
              "enabled": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "key": {
                "type": "string"
              },
              "override": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "paths": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "policy": {
                "oneOf": [
                  {
                    "type": "string",
                    "enum": [
                      "pull",
                      "push",
                      "pull-push"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for Caching"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "BuildIntelligence": {
            "title": "BuildIntelligence",
            "type": "object",
            "properties": {
              "enabled": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for BuildIntelligence"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ExecutionElementConfig": {
            "title": "ExecutionElementConfig",
            "type": "object",
            "required": [
              "steps"
            ],
            "properties": {
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/ci/ExecutionWrapperConfig"
                },
                "maxItems": 2147483647,
                "minItems": 1
              },
              "description": {
                "desc": "This is the description for ExecutionElementConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ExecutionWrapperConfig": {
            "title": "ExecutionWrapperConfig",
            "type": "object",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/ExecutionWrapperValidation"
              }
            ],
            "properties": {
              "parallel": {
                "$ref": "#/definitions/pipeline/stages/ci/ParallelStepElementConfig"
              },
              "insert": {
                "$ref": "#/definitions/pipeline/stages/ci/InsertStepsNode"
              },
              "step": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepElementConfig"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/AiEvalsRunStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/AiTestAutomationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/ArtifactoryUploadNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/HarUploadNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/BitriseStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/BuildAndPushACRNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/BuildAndPushDockerNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/BuildAndPushECRNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/BuildAndPushGCRNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/BuildAndPushGARNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/GCSUploadNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/GitCloneStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/RestoreCacheGCSNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/RestoreCacheS3Node"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/RestoreCacheAzureNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/RestoreCacheNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/SaveCacheAzureNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/RunTestStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/RunTestStepV2Node"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/S3UploadNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/SaveCacheGCSNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/SaveCacheS3Node"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/SaveCacheNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SscaEnforcementStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SscaOrchestrationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ActionStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AnchoreScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AquaSecurityScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AquaTrivyScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsEcrScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsSecurityHubScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/BackgroundStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/BanditScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/BlackDuckScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/BrakemanScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/BurpScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CheckmarxScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CheckmarxOneScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CheckovScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ClairScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CodeqlScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CoverityScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CustomIngestScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DataTheoremScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DockerContentTrustScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/FortifyOnDemandScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/FossaScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/GitHubAdvancedSecurityScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/GitleaksScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/GrypeScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/JfrogXrayScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/MendScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/MetasploitScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/NessusScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/NexusIQScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/NiktoScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/NmapScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/OpenvasScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/OsvScannerScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/OwaspScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/PluginStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/PrismaCloudScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ProwlerScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/QualysScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ReapsawScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/RunStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SecurityNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SemgrepScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ShiftLeftScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SniperScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SnykScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SonarqubeScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SysdigScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/TenableScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/TraceableScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/VeracodeScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ZapScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/PolicyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/TemplateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/WaitStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SlsaVerificationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ProvenanceStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ArtifactSigningStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ArtifactVerificationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/WizScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CortexCloudScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ModelScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SscaComplianceStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/EventListenerStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/SastScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ScaScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AgentStepNode"
                  }
                ]
              },
              "stepGroup": {
                "$ref": "#/definitions/pipeline/stages/ci/StepGroupElementConfig"
              },
              "description": {
                "desc": "This is the description for ExecutionWrapperConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ParallelStepElementConfig": {
            "title": "ParallelStepElementConfig",
            "type": "array",
            "items": {
              "$ref": "#/definitions/pipeline/stages/ci/ExecutionWrapperConfig"
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ParallelStepElementConfig"
              }
            }
          },
          "InsertStepsNode": {
            "title": "InsertStepsNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "steps"
            ],
            "properties": {
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "steps": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/ci/ExecutionWrapperConfig"
                    },
                    "maxItems": 2147483647,
                    "minItems": 1
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  },
                  {
                    "type": "string",
                    "pattern": "^[\\s]*$"
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "StepGroupElementConfig": {
            "title": "StepGroupElementConfig",
            "type": "object",
            "required": [
              "identifier",
              "name"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "sharedPaths": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "stepGroupInfra": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/K8sDirectInfra"
                  }
                ]
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/ci/ExecutionWrapperConfig"
                },
                "maxItems": 2147483647,
                "minItems": 1
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "template": {
                "$ref": "#/definitions/pipeline/steps/custom/TemplateLinkConfig"
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for StepGroupElementConfig"
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "oneOf": [
                  {
                    "required": [
                      "template"
                    ]
                  },
                  {
                    "required": [
                      "steps"
                    ]
                  }
                ]
              }
            ]
          },
          "SlsaConfig": {
            "title": "SlsaConfig",
            "type": "object",
            "properties": {
              "attestation": {
                "$ref": "#/definitions/pipeline/stages/ci/AttestationV1"
              },
              "enabled": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for SlsaConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "AttestationV1": {
            "title": "AttestationV1",
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "cosign"
                ]
              },
              "description": {
                "type": "string",
                "description": "This is the description for AttestationV1"
              },
              "spec": {
                "type": "object"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "cosign"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "type": "object",
                      "oneOf": [
                        {
                          "$ref": "#/definitions/pipeline/stages/ci/CosignAttestationV1"
                        },
                        {
                          "$ref": "#/definitions/pipeline/stages/ci/CosignSecretManagerAttestation"
                        }
                      ]
                    }
                  }
                }
              }
            ],
            "additionalProperties": false
          },
          "CosignAttestationV1": {
            "title": "CosignAttestationV1",
            "type": "object",
            "required": [
              "private_key",
              "password"
            ],
            "properties": {
              "password": {
                "type": "string"
              },
              "private_key": {
                "type": "string"
              },
              "description": {
                "type": "string",
                "description": "This is the description for CosignAttestationV1"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "$ref": "#/definitions/pipeline/stages/ci/AttestationSpecV1"
          },
          "AttestationSpecV1": {
            "title": "AttestationSpecV1",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for AttestationSpecV1"
              }
            }
          },
          "CosignSecretManagerAttestation": {
            "title": "CosignSecretManagerAttestation",
            "type": "object",
            "required": [
              "connector",
              "key"
            ],
            "properties": {
              "connector": {
                "type": "string"
              },
              "key": {
                "type": "string"
              },
              "description": {
                "type": "string",
                "description": "This is the description for Cosign Attestation with Secret Manager V1"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "$ref": "#/definitions/pipeline/stages/ci/AttestationSpecV1"
          }
        },
        "approval": {
          "ApprovalStageNode": {
            "title": "ApprovalStageNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "type": "string",
                "desc": "This is the description for ApprovalStageNode"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "tags": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "type": {
                "type": "string",
                "enum": [
                  "Approval"
                ]
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/StageWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "runMode": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/RunModeConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Approval"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/approval/ApprovalStageConfig"
                    }
                  }
                }
              }
            ]
          },
          "ApprovalStageConfig": {
            "title": "ApprovalStageConfig",
            "type": "object",
            "required": [
              "execution"
            ],
            "properties": {
              "execution": {
                "$ref": "#/definitions/pipeline/stages/approval/ExecutionElementConfig"
              },
              "description": {
                "desc": "This is the description for ApprovalStageConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ExecutionElementConfig": {
            "title": "ExecutionElementConfig",
            "type": "object",
            "required": [
              "steps"
            ],
            "properties": {
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/approval/ExecutionWrapperConfig"
                },
                "maxItems": 2147483647,
                "minItems": 1
              },
              "description": {
                "desc": "This is the description for ExecutionElementConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ExecutionWrapperConfig": {
            "title": "ExecutionWrapperConfig",
            "type": "object",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/ExecutionWrapperValidation"
              }
            ],
            "properties": {
              "parallel": {
                "$ref": "#/definitions/pipeline/stages/approval/ParallelStepElementConfig"
              },
              "insert": {
                "$ref": "#/definitions/pipeline/stages/approval/InsertStepsNode"
              },
              "step": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepElementConfig"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/BarrierStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/WaitStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/TemplateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/HarnessApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowUpdateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/HttpStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/EmailStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/QueueStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ShellScriptStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/CdSscaEnforcementStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/JiraCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/CdSscaOrchestrationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/JiraUpdateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ContainerStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/JiraApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/CustomApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowImportSetStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/PolicyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DBApplySchemaStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DBRollbackSchemaStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/LiquibaseCommandStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/FilesUploadStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/EventListenerStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AIExperimentStepNode"
                  }
                ]
              },
              "stepGroup": {
                "$ref": "#/definitions/pipeline/stages/approval/StepGroupElementConfig"
              },
              "description": {
                "desc": "This is the description for ExecutionWrapperConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ParallelStepElementConfig": {
            "title": "ParallelStepElementConfig",
            "type": "array",
            "items": {
              "$ref": "#/definitions/pipeline/stages/approval/ExecutionWrapperConfig"
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ParallelStepElementConfig"
              }
            }
          },
          "InsertStepsNode": {
            "title": "InsertStepsNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "steps"
            ],
            "properties": {
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "steps": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/approval/ExecutionWrapperConfig"
                    },
                    "maxItems": 2147483647,
                    "minItems": 1
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  },
                  {
                    "type": "string",
                    "pattern": "^[\\s]*$"
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "StepGroupElementConfig": {
            "title": "StepGroupElementConfig",
            "type": "object",
            "required": [
              "identifier",
              "name"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "sharedPaths": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "stepGroupInfra": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/K8sDirectInfra"
                  }
                ]
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/approval/ExecutionWrapperConfig"
                },
                "maxItems": 2147483647,
                "minItems": 1
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "template": {
                "$ref": "#/definitions/pipeline/steps/custom/TemplateLinkConfig"
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for StepGroupElementConfig"
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "oneOf": [
                  {
                    "required": [
                      "template"
                    ]
                  },
                  {
                    "required": [
                      "steps"
                    ]
                  }
                ]
              }
            ]
          }
        },
        "custom": {
          "PipelineStageNode": {
            "title": "PipelineStageNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for PipelineStageNode"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "tags": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "type": {
                "type": "string",
                "enum": [
                  "Pipeline"
                ]
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/StageWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Pipeline"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/custom/PipelineStageConfig"
                    }
                  }
                }
              }
            ]
          },
          "PipelineStageConfig": {
            "title": "PipelineStageConfig",
            "type": "object",
            "required": [
              "org",
              "pipeline",
              "project"
            ],
            "properties": {
              "inputSetReferences": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "inputs": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/JsonNode"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "org": {
                "type": "string"
              },
              "outputs": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/custom/PipelineStageOutputs"
                }
              },
              "pipeline": {
                "type": "string"
              },
              "pipelineInputs": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/JsonNode"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "project": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for PipelineStageConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "PipelineStageOutputs": {
            "title": "PipelineStageOutputs",
            "type": "object",
            "required": [
              "name",
              "value"
            ],
            "properties": {
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "value": {
                "type": "string"
              },
              "description": {
                "desc": "This is the description for PipelineStageOutputs"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "DynamicStageNode": {
            "title": "DynamicStageNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for DynamicStageNode"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Dynamic"
                ]
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/StageWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Dynamic"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/custom/DynamicStageConfig"
                    }
                  }
                }
              }
            ]
          },
          "DynamicStageConfig": {
            "title": "DynamicStageConfig",
            "type": "object",
            "properties": {
              "source": {
                "type": "string",
                "not": {
                  "const": "<+input>"
                },
                "description": "Inline YAML source (base64 encoded) - for backward compatibility"
              },
              "sourceConfig": {
                "type": "object",
                "description": "Source configuration - supports Git/Remote sources",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "Git"
                    ],
                    "description": "Type of source configuration"
                  },
                  "spec": {
                    "type": "object",
                    "description": "Source-specific configuration",
                    "properties": {
                      "connectorRef": {
                        "type": "string",
                        "description": "Git connector reference"
                      },
                      "branchName": {
                        "type": "string",
                        "description": "Git branch name"
                      },
                      "commitId": {
                        "type": "string",
                        "description": "Git commit ID"
                      },
                      "filePath": {
                        "type": "string",
                        "description": "Path to the pipeline YAML file in Git"
                      },
                      "repoName": {
                        "type": "string",
                        "description": "Git repository name"
                      }
                    },
                    "required": [
                      "repoName",
                      "filePath"
                    ]
                  }
                },
                "required": [
                  "type",
                  "spec"
                ]
              }
            },
            "oneOf": [
              {
                "type": "object",
                "required": [
                  "source"
                ]
              },
              {
                "type": "object",
                "required": [
                  "sourceConfig"
                ]
              }
            ],
            "description": "This is the description for DynamicStageConfig",
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "CustomStageNode": {
            "title": "CustomStageNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "type": "string",
                "desc": "This is the description for CustomStageNode"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "tags": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "type": {
                "type": "string",
                "enum": [
                  "Custom"
                ]
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/StageWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "runMode": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/RunModeConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "Custom"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/custom/CustomStageConfig"
                    }
                  }
                }
              }
            ]
          },
          "CustomStageConfig": {
            "title": "CustomStageConfig",
            "type": "object",
            "required": [
              "execution"
            ],
            "properties": {
              "execution": {
                "$ref": "#/definitions/pipeline/stages/custom/ExecutionElementConfig"
              },
              "description": {
                "desc": "This is the description for CustomStageConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ExecutionElementConfig": {
            "title": "ExecutionElementConfig",
            "type": "object",
            "required": [
              "steps"
            ],
            "properties": {
              "rollbackSteps": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/custom/ExecutionWrapperConfig"
                }
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/custom/ExecutionWrapperConfig"
                },
                "maxItems": 2147483647,
                "minItems": 1
              },
              "description": {
                "desc": "This is the description for ExecutionElementConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ExecutionWrapperConfig": {
            "title": "ExecutionWrapperConfig",
            "type": "object",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/ExecutionWrapperValidation"
              }
            ],
            "properties": {
              "parallel": {
                "$ref": "#/definitions/pipeline/stages/custom/ParallelStepElementConfig"
              },
              "insert": {
                "$ref": "#/definitions/pipeline/stages/custom/InsertStepsNode"
              },
              "step": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepElementConfig"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/BackgroundStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/GitCloneStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformApplyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformPlanStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformDestroyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/CloudformationCreateStackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/CloudformationDeleteStackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/CloudformationRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureCreateARMResourceStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureCreateBPStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureARMRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/JenkinsBuildStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ShellScriptProvisionStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/LoadTestStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosProbeNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosActionNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosFaultNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/AiEvalsRunStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AiTestAutomationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerragruntPlanStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerragruntApplyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerragruntDestroyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerragruntRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudRunStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/DownloadManifestsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AwsLambdaRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/BambooBuildStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/HttpStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/EmailStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/QueueStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ShellScriptStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/CustomApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/JiraCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/JiraUpdateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/TemplateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/JiraApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/HarnessApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/BarrierStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowUpdateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowImportSetStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FlagConfigurationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/PolicyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/WaitStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ContainerStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/RunStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/PluginStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsCdkBootstrapStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsCdkSynthStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsCdkDiffStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsCdkDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DBApplySchemaStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DBRollbackSchemaStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsCdkDestroyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsCdkRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/DownloadAwsS3StepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/DownloadGcsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/DownloadHarnessStoreStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/LiquibaseCommandStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/FilesUploadStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/idp/IDPSlackNotifyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunJobStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgSteadyStateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/EventListenerStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/HelmDeleteStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/S3UploadNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CustomIngestScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AIExperimentStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DBOPSTestAndPreviewStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DBSchemaUpdateSQLNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DBSchemaRollbackSQLNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/FlywayCommandStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/WizScanNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagDeleteStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagArchiveStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagLimitExposureStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagUpdateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagDefaultAllocationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagAddRemoveIndividualTargetsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetIndividualTargetsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagKillStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetImpressionTrackingStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagRestoreStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagReallocateTrafficStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetDynamicConfigurationsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetTreatmentsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagPatchDefinitionStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetTargetingRulesStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentUpdateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentDeleteStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentAddRemoveTargetsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentSetTargetingRulesStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagsetCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagsetDeleteStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagAddRemoveFlagsetsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagDefinitionInstructionsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeMetricCheckStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GCEProvisionBackendServiceStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/EcsScaleStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AgentStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceApexTestStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceSourceBackupStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceValidateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceQuickDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceCreateScratchOrgStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceDeleteScratchOrgStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceDownloadDeployablesStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceDownloadOrgStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceEvaluateDiffStepNode"
                  }
                ]
              },
              "stepGroup": {
                "$ref": "#/definitions/pipeline/stages/custom/StepGroupElementConfig"
              },
              "description": {
                "desc": "This is the description for ExecutionWrapperConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ParallelStepElementConfig": {
            "title": "ParallelStepElementConfig",
            "type": "array",
            "items": {
              "$ref": "#/definitions/pipeline/stages/custom/ExecutionWrapperConfig"
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ParallelStepElementConfig"
              }
            }
          },
          "InsertStepsNode": {
            "title": "InsertStepsNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "steps"
            ],
            "properties": {
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "steps": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/custom/ExecutionWrapperConfig"
                    },
                    "maxItems": 2147483647,
                    "minItems": 1
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  },
                  {
                    "type": "string",
                    "pattern": "^[\\s]*$"
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "StepGroupElementConfig": {
            "title": "StepGroupElementConfig",
            "type": "object",
            "required": [
              "identifier",
              "name"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "sharedPaths": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "stepGroupInfra": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/K8sDirectInfra"
                  },
                  {
                    "$ref": "#/definitions/pipeline/common/VMInfra"
                  },
                  {
                    "$ref": "#/definitions/pipeline/common/ECSDirectInfra"
                  }
                ]
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/custom/ExecutionWrapperConfig"
                },
                "maxItems": 2147483647,
                "minItems": 1
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "template": {
                "$ref": "#/definitions/pipeline/steps/custom/TemplateLinkConfig"
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for StepGroupElementConfig"
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "oneOf": [
                  {
                    "required": [
                      "template"
                    ]
                  },
                  {
                    "required": [
                      "steps"
                    ]
                  }
                ]
              }
            ]
          }
        },
        "cf": {
          "FeatureFlagStageNode": {
            "title": "FeatureFlagStageNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "type": "string",
                "desc": "This is the description for FeatureFlagStageNode"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "tags": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "type": {
                "type": "string",
                "enum": [
                  "FeatureFlag"
                ]
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/StageWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "timeout": {
                "type": "string",
                "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
              },
              "runMode": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/RunModeConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "FeatureFlag"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/cf/FeatureFlagStageConfig"
                    }
                  }
                }
              }
            ]
          },
          "FeatureFlagStageConfig": {
            "title": "FeatureFlagStageConfig",
            "type": "object",
            "properties": {
              "execution": {
                "$ref": "#/definitions/pipeline/stages/cf/ExecutionElementConfig"
              },
              "description": {
                "desc": "This is the description for FeatureFlagStageConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ExecutionElementConfig": {
            "title": "ExecutionElementConfig",
            "type": "object",
            "required": [
              "steps"
            ],
            "properties": {
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/cf/ExecutionWrapperConfig"
                },
                "maxItems": 2147483647,
                "minItems": 1
              },
              "description": {
                "desc": "This is the description for ExecutionElementConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ExecutionWrapperConfig": {
            "title": "ExecutionWrapperConfig",
            "type": "object",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/ExecutionWrapperValidation"
              }
            ],
            "properties": {
              "parallel": {
                "$ref": "#/definitions/pipeline/stages/cf/ParallelStepElementConfig"
              },
              "insert": {
                "$ref": "#/definitions/pipeline/stages/cf/InsertStepsNode"
              },
              "step": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepElementConfig"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/BackgroundStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/GitCloneStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformApplyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformPlanStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformDestroyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/CloudformationCreateStackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/CloudformationDeleteStackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/CloudformationRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureCreateARMResourceStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureCreateBPStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureARMRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/JenkinsBuildStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ShellScriptProvisionStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/LoadTestStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosProbeNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosActionNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosFaultNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerragruntPlanStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerragruntApplyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerragruntDestroyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerragruntRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgCanaryDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgCanaryDeleteStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgRollingDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgSteadyStateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgRollingRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgBlueGreenDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgBlueGreenRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AsgBlueGreenSwapServiceStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudRunStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AwsLambdaDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AwsSamDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/DownloadManifestsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AwsSamBuildStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AwsSamRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/TerraformCloudRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AwsLambdaRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/BambooBuildStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/HttpStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/EmailStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/QueueStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ShellScriptStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/CustomApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/JiraCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/JiraUpdateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/TemplateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/JiraApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/HarnessApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/BarrierStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowUpdateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowImportSetStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FlagConfigurationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/PolicyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/WaitStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ContainerStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/RunStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/PluginStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/ActionStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureFunctionDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureFunctionRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ServerlessAwsLambdaDeployV2StepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ServerlessAwsLambdaPackageV2StepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ServerlessAwsLambdaPrepareRollbackV2StepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/ServerlessAwsLambdaRollbackV2StepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsCdkBootstrapStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsCdkSynthStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsCdkDiffStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsCdkDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsCdkDestroyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AwsCdkRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/DownloadAwsS3StepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/DownloadGcsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/DownloadHarnessStoreStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureContainerAppsDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureContainerAppsPrepareRollbackDataStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureContainerAppsTrafficShiftStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/AzureContainerAppsRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunPrepareRollbackDataStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunTrafficShiftStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleMigDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleMigBlueGreenDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleMigTrafficShiftStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleMigBlueGreenRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleMigSteadyStateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GCEProvisionBackendServiceStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceApexTestStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceRollbackStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceSourceBackupStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceValidateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceQuickDeployStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceCreateScratchOrgStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceDeleteScratchOrgStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceDownloadDeployablesStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceDownloadOrgStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/SalesforceEvaluateDiffStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/idp/IDPSlackNotifyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunJobStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/EventListenerStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagDeleteStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagArchiveStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagLimitExposureStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagUpdateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagDefaultAllocationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagAddRemoveIndividualTargetsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetIndividualTargetsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagKillStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetImpressionTrackingStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagRestoreStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagReallocateTrafficStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetDynamicConfigurationsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetTreatmentsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagPatchDefinitionStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagSetTargetingRulesStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentUpdateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentDeleteStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentAddRemoveTargetsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeSegmentSetTargetingRulesStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagsetCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagsetDeleteStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagAddRemoveFlagsetsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeFlagDefinitionInstructionsStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/FmeMetricCheckStepNode"
                  }
                ]
              },
              "stepGroup": {
                "$ref": "#/definitions/pipeline/stages/cf/StepGroupElementConfig"
              },
              "description": {
                "desc": "This is the description for ExecutionWrapperConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ParallelStepElementConfig": {
            "title": "ParallelStepElementConfig",
            "type": "array",
            "items": {
              "$ref": "#/definitions/pipeline/stages/cf/ExecutionWrapperConfig"
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ParallelStepElementConfig"
              }
            }
          },
          "InsertStepsNode": {
            "title": "InsertStepsNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "steps"
            ],
            "properties": {
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "steps": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/cf/ExecutionWrapperConfig"
                    },
                    "maxItems": 2147483647,
                    "minItems": 1
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  },
                  {
                    "type": "string",
                    "pattern": "^[\\s]*$"
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "StepGroupElementConfig": {
            "title": "StepGroupElementConfig",
            "type": "object",
            "required": [
              "identifier",
              "name"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "sharedPaths": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "stepGroupInfra": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/K8sDirectInfra"
                  }
                ]
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/cf/ExecutionWrapperConfig"
                },
                "maxItems": 2147483647,
                "minItems": 1
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "template": {
                "$ref": "#/definitions/pipeline/steps/custom/TemplateLinkConfig"
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for StepGroupElementConfig"
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "oneOf": [
                  {
                    "required": [
                      "template"
                    ]
                  },
                  {
                    "required": [
                      "steps"
                    ]
                  }
                ]
              }
            ]
          }
        },
        "template": {
          "TemplateStageNode": {
            "title": "TemplateStageNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "template"
            ],
            "properties": {
              "description": {
                "type": "string",
                "desc": "This is the description for TemplateStageNode"
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "template": {
                "$ref": "#/definitions/pipeline/steps/custom/TemplateLinkConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          }
        },
        "idp": {
          "IDPStageNode": {
            "title": "IDPStageNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "type": "string",
                "desc": "This is the description for IDPStageNode"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_][-0-9a-zA-Z_\\s]{0,127}$"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "tags": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "type": {
                "type": "string",
                "enum": [
                  "IDP"
                ]
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/StageWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "runMode": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/RunModeConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "IDP"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/idp/IDPStageConfigImpl"
                    }
                  }
                }
              }
            ]
          },
          "IDPStageConfigImpl": {
            "title": "IDPStageConfigImpl",
            "type": "object",
            "properties": {
              "cloneCodebase": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "execution": {
                "$ref": "#/definitions/pipeline/stages/idp/ExecutionElementConfig"
              },
              "infrastructure": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DockerInfraYaml"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/HostedVmInfraYaml"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/K8sDirectInfraYaml"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/UseFromStageInfraYaml"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/VmInfraYaml"
                  }
                ]
              },
              "platform": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/Platform"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "runtime": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/common/CloudRuntime"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/DockerRuntime"
                  }
                ]
              },
              "serviceDependencies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/steps/common/DependencyElement"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "sharedPaths": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for IDPStageConfigImpl"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ExecutionElementConfig": {
            "title": "ExecutionElementConfig",
            "type": "object",
            "required": [
              "steps"
            ],
            "properties": {
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/idp/ExecutionWrapperConfig"
                },
                "maxItems": 2147483647,
                "minItems": 1
              },
              "description": {
                "desc": "This is the description for ExecutionElementConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ExecutionWrapperConfig": {
            "title": "ExecutionWrapperConfig",
            "type": "object",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/ExecutionWrapperValidation"
              }
            ],
            "properties": {
              "parallel": {
                "$ref": "#/definitions/pipeline/stages/idp/ParallelStepElementConfig"
              },
              "insert": {
                "$ref": "#/definitions/pipeline/stages/idp/InsertStepsNode"
              },
              "step": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepElementConfig"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/RunStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/PolicyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/TemplateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/ci/GitCloneStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/PluginStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/common/AgentStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/idp/IDPCookieCutterStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/idp/IDPCreateRepoStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/idp/IDPRegisterCatalogStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/idp/IDPDirectPushStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/idp/IDPCreateCatalogStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/idp/IDPSlackNotifyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/idp/IDPCreateOrganisationStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/idp/IDPCreateProjectStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/idp/IDPCreateResourceStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/idp/IDPUpdateCatalogPropertyStepNode"
                  }
                ]
              },
              "description": {
                "desc": "This is the description for ExecutionWrapperConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ParallelStepElementConfig": {
            "title": "ParallelStepElementConfig",
            "type": "array",
            "items": {
              "$ref": "#/definitions/pipeline/stages/idp/ExecutionWrapperConfig"
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "description": {
                "desc": "This is the description for ParallelStepElementConfig"
              }
            }
          },
          "InsertStepsNode": {
            "title": "InsertStepsNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "steps"
            ],
            "properties": {
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "steps": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/idp/ExecutionWrapperConfig"
                    },
                    "maxItems": 2147483647,
                    "minItems": 1
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  },
                  {
                    "type": "string",
                    "pattern": "^[\\s]*$"
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          }
        },
        "drtest": {
          "DRTestStageNode": {
            "title": "DRTestStageNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "type"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "type": "string",
                "desc": "This is the description for DRTestStageNode"
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_][-0-9a-zA-Z_\\s]{0,127}$"
              },
              "objective": {
                "type": "string"
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "tags": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "type": {
                "type": "string",
                "enum": [
                  "DRTest"
                ]
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/StageWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "runMode": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/RunModeConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "type": {
                      "const": "DRTest"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "spec": {
                      "$ref": "#/definitions/pipeline/stages/drtest/DRTestStageConfigImpl"
                    }
                  }
                }
              }
            ]
          },
          "DRTestStageConfigImpl": {
            "title": "DRTestStageConfigImpl",
            "type": "object",
            "required": [
              "execution"
            ],
            "properties": {
              "execution": {
                "$ref": "#/definitions/pipeline/stages/drtest/ExecutionElementConfig"
              },
              "description": {
                "desc": "This is the description for DRTestStageConfigImpl"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ExecutionElementConfig": {
            "title": "ExecutionElementConfig",
            "type": "object",
            "required": [
              "steps"
            ],
            "properties": {
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/drtest/ExecutionWrapperConfig"
                }
              },
              "rollbackSteps": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/drtest/ExecutionWrapperConfig"
                }
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ExecutionWrapperConfig": {
            "title": "ExecutionWrapperConfig",
            "type": "object",
            "allOf": [
              {
                "$ref": "#/definitions/pipeline/common/ExecutionWrapperValidation"
              }
            ],
            "properties": {
              "parallel": {
                "$ref": "#/definitions/pipeline/stages/drtest/ParallelStepElementConfig"
              },
              "insert": {
                "$ref": "#/definitions/pipeline/stages/drtest/InsertStepsNode"
              },
              "step": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepElementConfig"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ShellScriptStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ContainerStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/PolicyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/TemplateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/drtest/DRTestSlackNotifyStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosProbeNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosActionNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/ChaosFaultNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/resiliencetesting/LoadTestStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/EmailStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/HttpStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/WaitStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/EventListenerStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/HarnessApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/CustomApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/JiraApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowApprovalStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/JiraCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/JiraUpdateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/BarrierStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/QueueStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowCreateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowUpdateStepNode"
                  },
                  {
                    "$ref": "#/definitions/pipeline/steps/custom/ServiceNowImportSetStepNode"
                  }
                ]
              },
              "stepGroup": {
                "$ref": "#/definitions/pipeline/stages/drtest/StepGroupElementConfig"
              },
              "description": {
                "desc": "This is the description for ExecutionWrapperConfig"
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "ParallelStepElementConfig": {
            "title": "ParallelStepElementConfig",
            "type": "array",
            "items": {
              "$ref": "#/definitions/pipeline/stages/drtest/ExecutionWrapperConfig"
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "InsertStepsNode": {
            "title": "InsertStepsNode",
            "type": "object",
            "required": [
              "identifier",
              "name",
              "steps"
            ],
            "properties": {
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "steps": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/stages/drtest/ExecutionWrapperConfig"
                    },
                    "maxItems": 2147483647,
                    "minItems": 1
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  },
                  {
                    "type": "string",
                    "pattern": "^[\\s]*$"
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "StepGroupElementConfig": {
            "title": "StepGroupElementConfig",
            "type": "object",
            "required": [
              "identifier",
              "name"
            ],
            "properties": {
              "delegateSelectors": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "(<\\+.+>.*)",
                    "minLength": 1
                  }
                ]
              },
              "failureStrategies": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "identifier": {
                "type": "string",
                "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
              },
              "sharedPaths": {
                "oneOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
                    "minLength": 1
                  }
                ]
              },
              "stepGroupInfra": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/K8sDirectInfra"
                  },
                  {
                    "$ref": "#/definitions/pipeline/common/VMInfra"
                  },
                  {
                    "$ref": "#/definitions/pipeline/common/ECSDirectInfra"
                  }
                ]
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/pipeline/stages/drtest/ExecutionWrapperConfig"
                },
                "maxItems": 2147483647,
                "minItems": 1
              },
              "strategy": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StrategyConfig"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "template": {
                "$ref": "#/definitions/pipeline/steps/custom/TemplateLinkConfig"
              },
              "when": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/pipeline/common/StepWhenCondition"
                  },
                  {
                    "type": "string",
                    "pattern": "^<\\+input>$",
                    "minLength": 1
                  }
                ]
              },
              "description": {
                "desc": "This is the description for StepGroupElementConfig"
              },
              "variables": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/definitions/pipeline/common/NumberNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/SecretNGVariable"
                    },
                    {
                      "$ref": "#/definitions/pipeline/common/StringNGVariable"
                    }
                  ]
                }
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#",
            "allOf": [
              {
                "oneOf": [
                  {
                    "required": [
                      "template"
                    ]
                  },
                  {
                    "required": [
                      "steps"
                    ]
                  }
                ]
              }
            ]
          }
        }
      }
    }
  }
};
export default schema;
